Bom dia a todos,
No que diz respeito a chave, não importa se é da NFe ou CTe, temos um campo que a SEFAZ chama de código que nas primeiras versões era de 9 digitos, agora é de 8.
A SEFAZ recomenda que esse código seja um número aleatório, muitos desenvolvedores acabam atribuindo a esse código o mesmo numero do documento fiscal.
Esta errado não, mas também não é o correto, por dois motivos:
1. a chave não tem um código de seguraça.
2. o numero do documento é de 9 digitos e o código de 8, logo no futuro essa aplicação vai ter que sofrer alterações.
Concordo com a resposta do Juliomar e dou uma outra dica.
A unica informação da chave que seria impossível recuperar no caso de perda é o código, pois bem, como estamos falado da chave do CT-e, ao salvar os dados do mesmo no banco de dados, podemos gerar utilizando o Randomize o código aleatório de 8 digitos e salvar o mesmo junto com os demais dados em um campo chamado CodigoCTe.
Pronto desta forma você consegue compor a chave sem nenhum problema quando houver a necessidade.
No meu sistema alem do campo CodigoCTe tenho também um outro campo chamado ChaveCTe onde armazeno a chave completa.
O CodigoCTe é salvo junto com os demais dados antes da emissão do CTe, neste momento o campo ChaveCTe recebe vazio.
Após a emissão do CTe atualizo o registro, em especial o campo ChaveCTe.
Como você pode ver com dois campos a mais na sua tabela fica resolvido o problema.