Sie können die Identitätsspalte nicht aktualisieren.
SQL Server erlaubt es nicht, die Identitätsspalte zu aktualisieren, im Gegensatz zu anderen Spalten mit einer Update-Anweisung.
Obwohl es einige Alternativen gibt, um eine ähnliche Anforderung zu erfüllen.
- Wenn der Identitätsspaltenwert für neue Datensätze aktualisiert werden muss
Verwenden Sie DBCC CHECKIDENT , das den aktuellen Identitätswert für die Tabelle prüft und bei Bedarf den Identitätswert ändert.
DBCC CHECKIDENT('tableName', RESEED, NEW_RESEED_VALUE)
- Wenn der Identitätsspaltenwert für vorhandene Datensätze aktualisiert werden muss
Verwenden Sie IDENTITY_INSERT , wodurch explizite Werte in die Identitätsspalte einer Tabelle eingefügt werden können.
SET IDENTITY_INSERT YourTable {ON|OFF}
Beispiel:
-- 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