El DBCC CHECKIDENT
comando de gestión se utiliza para restablecer el contador de identidad. La sintaxis del comando es:
DBCC CHECKIDENT (table_name [, { NORESEED | { RESEED [, new_reseed_value ]}}])
[ WITH NO_INFOMSGS ]
Ejemplo:
DBCC CHECKIDENT ('[TestTable]', RESEED, 0);
GO
No se admitía en versiones anteriores de Azure SQL Database, pero ahora se admite.
Tenga en cuenta que el new_reseed_value
argumento varía según las versiones de SQL Server según la documentación :
Si las filas están presentes en la tabla, la siguiente fila se inserta con el valor new_reseed_value . En la versión SQL Server 2008 R2 y anteriores, la siguiente fila insertada usa new_reseed_value + el valor de incremento actual.
Sin embargo, encuentro que esta información es engañosa (en realidad, simplemente es incorrecta) porque el comportamiento observado indica que al menos SQL Server 2012 todavía usa new_reseed_value + la lógica del valor de incremento actual. Microsoft incluso contradice con el suyo Example C
encontrado en la misma página:
C. Forzar el valor de identidad actual a un nuevo valor
El siguiente ejemplo fuerza el valor de identidad actual en la columna AddressTypeID en la tabla AddressType a un valor de 10. Debido a que la tabla tiene filas existentes, la siguiente fila insertada utilizará 11 como el valor, es decir, el nuevo valor de incremento actual definido para El valor de la columna más 1.
USE AdventureWorks2012;
GO
DBCC CHECKIDENT ('Person.AddressType', RESEED, 10);
GO
Aún así, todo esto deja una opción para un comportamiento diferente en las versiones más nuevas de SQL Server. Supongo que la única manera de estar seguro, hasta que Microsoft aclare las cosas en su propia documentación, es hacer pruebas reales antes de su uso.