use o seguinte na sua tabela
dbcc checkident ('dbo.table', reseed, 410000)
altera o valor de identidade atual para 410000, portanto, a próxima inserção será qualquer que seja o icrement mais 410000 (assim, 410001 se o incremento for 1).
Eu tenho uma tabela com uma chave primária que é um incremento automático de número automático int. Seu campo de tipo de chave primária padrão.
Devido a um cenário complicado com um banco de dados previamente replicado, agora eu já tenho linhas na tabela com valores até 410000, mas o relatório de valor de IDENT_CURRENT é de apenas 4.0006 ou mais. Agora, eu tenho um código que está tentando inserir registros e explodindo porque o banco de dados acha que deveria usar o número 400060 e, no entanto, eu já tenho um registro com esse id. Kaboom.
Eu procurei configurar manualmente o próximo número no designer de tabelas, mas ao visualizar o script que ele gera, ele criará uma tabela duplicada, copiará todos os registros para ela, eliminará a tabela antiga, renomeá-la, algumas coisas com restrições, etc. É tudo muito assustador quando eu só preciso de uma mudança simples.
Existe alguma maneira de alterar esse valor que não cause tantas alterações desnecessárias?
E algo como o seguinte, que apenas remove os registros ofensivos, e os reinsere de uma tabela temporária?
SELECT * INTO #temptable FROM tablename WHERE ID_FLD>400059;
DELETE * FROM tablename WHERE ID_FLD>400059;
SELECT * INTO tablename FROM #temptable;
Tags sql-server