Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak zaktualizować kolumnę tożsamości w SQL Server?

Nie można zaktualizować kolumny tożsamości.

SQL Server nie pozwala na aktualizację kolumny tożsamości, w przeciwieństwie do tego, co można zrobić z innymi kolumnami za pomocą instrukcji aktualizacji.

Chociaż istnieją pewne alternatywy umożliwiające osiągnięcie podobnego rodzaju wymagań.

  • Kiedy wartość kolumny tożsamości musi zostać zaktualizowana dla nowych rekordów

Użyj polecenia DBCC CHECKIDENT, które sprawdza bieżącą wartość tożsamości dla tabeli i, jeśli to konieczne, zmienia wartość tożsamości.

DBCC CHECKIDENT('tableName', RESEED, NEW_RESEED_VALUE)
  • Kiedy wartość kolumny tożsamości musi zostać zaktualizowana dla istniejących rekordów

Użyj IDENTITY_INSERT co umożliwia wstawianie jawnych wartości do kolumny tożsamości w tabeli.

SET IDENTITY_INSERT YourTable {ON|OFF}

Przykład:

-- 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Usuń klucz podstawowy za pomocą skryptu w bazie danych SQL Server

  2. Ustaw opcję 9 w procedurze składowanej SQL Server przy użyciu WinHttp.WinHttpRequest.5.1 dla TLS 1.2

  3. Poziomy izolacji programu SQL Server:seria A

  4. Jak wyczyścić (zapobiec wstrzyknięciu SQL) dynamiczny SQL w SQL Server?

  5. Jak mogę wymusić w strukturze encji wstawianie kolumn tożsamości?