sexta-feira, 14 de dezembro de 2012

Identity e Truncate


Esticando um pouco a prosa sobre IDENTITY, a dica do dia é a seguinte:
Quando precisar limpar uma tabela, excluindo todos seus registros, lembre-se:
TRUNCATE TABLE (apesar de ser extremamente mais rápido que o DELETE) pode lhe gerar problemas caso sua tabela tenha uma coluna com o IDENTITY, isto porque sempre que “truncamos” uma tabela, o IDENTITY da mesma é reiniciado; ou seja, ao fim da operação  o retorno do comando abaixo será 1:
1
select IDENT_CURRENT('suaTabela');
Se desejar retomar a sequencia anterior, utilize o comando abaixo logo após o TRUNCATE TABLE:
1
DBCC CHECKIDENT (<suaTabela>, RESEED, <X*>);
* onde, X representa o ID inicial da sua sequencia
Se sua opção for o DELETE não há necessidade em se preocupar com a sequência do IDENTITY. Esta será preservada.

Nenhum comentário:

Postar um comentário