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

¿Cómo actualizar la columna de identidad en SQL Server?

No puede actualizar la columna de identidad.

SQL Server no permite actualizar la columna de identidad a diferencia de lo que puede hacer con otras columnas con una declaración de actualización.

Aunque existen algunas alternativas para lograr un tipo de requisito similar.

  • Cuándo es necesario actualizar el valor de la columna Identidad para nuevos registros

Utilice DBCC CHECKIDENT que comprueba el valor de identidad actual de la tabla y, si es necesario, cambia el valor de identidad.

DBCC CHECKIDENT('tableName', RESEED, NEW_RESEED_VALUE)
  • Cuándo es necesario actualizar el valor de la columna Identidad para los registros existentes

Utilice IDENTITY_INSERT que permite insertar valores explícitos en la columna de identidad de una tabla.

SET IDENTITY_INSERT YourTable {ON|OFF}

Ejemplo:

-- Set Identity insert on so that value can be inserted into this column
SET IDENTITY_INSERT YourTable ON
GO
-- Insert the record which you want to update with new value in the identity column
INSERT INTO YourTable(IdentityCol, otherCol) VALUES(13,'myValue')
GO
-- Delete the old row of which you have inserted a copy (above) (make sure about FK's)
DELETE FROM YourTable WHERE ID=3
GO
--Now set the idenetity_insert OFF to back to the previous track
SET IDENTITY_INSERT YourTable OFF