O DBCC CHECKIDENT
comando de gerenciamento é usado para redefinir o contador de identidade. A sintaxe do comando é:
DBCC CHECKIDENT (table_name [, { NORESEED | { RESEED [, new_reseed_value ]}}])
[ WITH NO_INFOMSGS ]
Exemplo:
DBCC CHECKIDENT ('[TestTable]', RESEED, 0);
GO
Não era suportado em versões anteriores do Banco de Dados SQL do Azure, mas agora é suportado.
Observe que o new_reseed_value
argumento varia de acordo com as versões do SQL Server, de acordo com a documentação :
Se houver linhas na tabela, a próxima linha será inserida com o valor new_reseed_value . Na versão SQL Server 2008 R2 e versões anteriores, a próxima linha inserida usa new_reseed_value + o valor atual de incremento.
No entanto, acho essas informações enganosas (na verdade, simplesmente erradas) porque o comportamento observado indica que pelo menos o SQL Server 2012 ainda usa new_reseed_value + a lógica atual do valor de incremento. A Microsoft até contradiz o que Example C
encontrou na mesma página:
C. Forçando o valor atual da identidade para um novo valor
O exemplo a seguir força o valor atual da identidade na coluna AddressTypeID na tabela AddressType a um valor 10. Como a tabela possui linhas existentes, a próxima linha inserida usará 11 como o valor, ou seja, o novo valor de incremento atual definido para o valor da coluna mais 1.
USE AdventureWorks2012;
GO
DBCC CHECKIDENT ('Person.AddressType', RESEED, 10);
GO
Ainda assim, isso deixa uma opção para um comportamento diferente nas versões mais recentes do SQL Server. Acho que a única maneira de ter certeza, até a Microsoft esclarecer as coisas em sua própria documentação, é fazer testes reais antes do uso.