sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan opdateres Identity Column i SQL Server?

Du kan ikke opdatere identitetskolonnen.

SQL Server tillader ikke at opdatere identitetskolonnen i modsætning til, hvad du kan gøre med andre kolonner med en opdateringssætning.

Selvom der er nogle alternativer til at opnå en lignende form for krav.

  • Når værdien for identitetskolonnen skal opdateres for nye registreringer

Brug DBCC CHECKIDENT som kontrollerer den aktuelle identitetsværdi for tabellen, og hvis det er nødvendigt, ændrer identitetsværdien.

DBCC CHECKIDENT('tableName', RESEED, NEW_RESEED_VALUE)
 
  • Når værdien for identitetskolonnen skal opdateres for eksisterende poster

Brug IDENTITY_INSERT som tillader eksplicitte værdier at blive indsat i identitetskolonnen i en tabel.

SET IDENTITY_INSERT YourTable {ON|OFF}
 

Eksempel:

-- 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. SQL-forespørgsel til at sammenligne produktsalg efter måned

  2. Skift af Django-projekt fra sqlite3-backend til postgresql mislykkes ved indlæsning af datadump

  3. Beregn Max of Sum af et kommenteret felt over en grupperet efter forespørgsel i Django ORM?

  4. mysql to kolonne primær nøgle med auto-increment