Um dia um analista/desenvolvedor me pediu para restaurar um backup de uma base de dados, eu prontamente perguntei: pode ser de meia noite? ele respondeu que sim.
Tudo corria bem até que novamente o mesmo pedido, resolvi entender qual era o problema. O sistema que ele estava trabalhando adicionava um registo numa tabela com um campo chave autoincremental, ou seja, a cada registro adicionado o campo chave é adicionado de 1 ao último valor. A cada vez que ele, o analista/desenvolvedor, testava e dava errado ele me pedia para restaurar o backup, pois o campo chave, autoincremento, da tabela tinha o valor maior.
Foi aí que lembrei de uma funçãozinha do SQL Server que faz com que você volte o campo autoincremento, identity no SQL Server, ao valor que desejar.
O comando salvador é: DBCC CHECKIDENT ([NOME DA TABELA], RESEED, [VALOR] /valor>) (http://msdn.microsoft.com/pt-br/library/ms176057.aspx).
Até a próxima.
Tudo corria bem até que novamente o mesmo pedido, resolvi entender qual era o problema. O sistema que ele estava trabalhando adicionava um registo numa tabela com um campo chave autoincremental, ou seja, a cada registro adicionado o campo chave é adicionado de 1 ao último valor. A cada vez que ele, o analista/desenvolvedor, testava e dava errado ele me pedia para restaurar o backup, pois o campo chave, autoincremento, da tabela tinha o valor maior.
Foi aí que lembrei de uma funçãozinha do SQL Server que faz com que você volte o campo autoincremento, identity no SQL Server, ao valor que desejar.
O comando salvador é: DBCC CHECKIDENT ([NOME DA TABELA], RESEED, [VALOR]
Até a próxima.
Esse comando salva a pátria em várias situações. Ele é bom também quando se realiza testes em uma base de homologação e a partir desta base é criada uma outra de produção. Caso o banco possua campos identity, eles estarão com valores bastante altos. Assim, basta executar o santo comando nas tabelas correspondentes aos campos para recomeçar a contagem.
ResponderExcluirGrande Marquinhos, tudo beleza? Um abração e parabéns pela nova fase, certamente muito vitoriosa. Paulo Vitorino.
ResponderExcluir