Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como atualizar a coluna de identidade no SQL Server?


Você não pode atualizar a coluna de identidade.

O SQL Server não permite atualizar a coluna de identidade ao contrário do que você pode fazer com outras colunas com uma instrução de atualização.

Embora existam algumas alternativas para atingir um tipo semelhante de requisito.
  • Quando o valor da coluna Identity precisa ser atualizado para novos registros

Use DBCC CHECKIDENT que verifica o valor de identidade atual da tabela e, se necessário, altera o valor de identidade.
DBCC CHECKIDENT('tableName', RESEED, NEW_RESEED_VALUE)
  • Quando o valor da coluna Identity precisa ser atualizado para registros existentes

Use IDENTITY_INSERT que permite que valores explícitos sejam inseridos na coluna de identidade de uma tabela.
SET IDENTITY_INSERT YourTable {ON|OFF}

Exemplo:
-- 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