sql >> Base de Datos >  >> RDS >> Sqlserver

Valores duplicados en la columna de identidad

Probé lo que dice Giogri y si habilita la Especificación de identidad (al menos en 2008, probablemente también en otras versiones) después de que la tabla tenga filas, la base de datos comenzará la numeración en el valor entero más alto. Si tiene una fila con 100 como valor de columna, luego habilite Identidad, la siguiente inserción será 101. Incluso con Semilla de Identidad especificada como 1. No era lo que esperaba, pero es lo que sucedió.

Además de SET IDENTITY INSERT , también hay un comando de reinicio. DBCC CHECKIDENT comando que restablecerá sus valores de identidad a lo que especifique.

Dado que la habilitación de la Especificación de identidad en realidad comienza en el entero más alto de la columna, es probable que alguien haya usado SET IDENTITY_INSERT o hizo un DBCC CHECKIDENT .

La forma más rápida de volver a secuenciar como dice Andomar es soltar/recrear la columna de esta manera

ALTER TABLE tbl
DROP COLUMN ident_column
GO
alter TABLE tbl
ADD ident_column int IDENTITY

SET IDENTITY_INSERT documentos:http://msdn.microsoft.com/ es-es/library/aa259221(SQL.80).aspx
DBCC CHECKIDENT documentos:http://msdn.microsoft.com/ es-es/library/aa258817(SQL.80).aspx