sql >> Databasteknik >  >> RDS >> Sqlserver

Hur uppdaterar jag Identity Column i SQL Server?

Du kan inte uppdatera identitetskolumnen.

SQL Server tillåter inte att uppdatera identitetskolumnen till skillnad från vad du kan göra med andra kolumner med en uppdateringssats.

Även om det finns några alternativ för att uppnå en liknande typ av krav.

  • När värdet för identitetskolumnen måste uppdateras för nya poster

Använd DBCC CHECKIDENT som kontrollerar det aktuella identitetsvärdet för tabellen och om det behövs ändrar identitetsvärdet.

DBCC CHECKIDENT('tableName', RESEED, NEW_RESEED_VALUE)
  • När värdet för identitetskolumnen måste uppdateras för befintliga poster

Använd IDENTITY_INSERT som tillåter att explicita värden infogas i identitetskolumnen i en tabell.

SET IDENTITY_INSERT YourTable {ON|OFF}

Exempel:

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


  1. MySQL:#126 - Felaktig nyckelfil för tabell

  2. Skillnaden mellan oracle DATE och TIMESTAMP

  3. COSH() Funktion i Oracle

  4. Identifiera och hantera uppdragskritiska åtkomstapplikationer under ett utvecklingsprojekt