Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да актуализирам колоната за самоличност в SQL Server?

Не можете да актуализирате колоната за самоличност.

SQL Server не позволява актуализиране на колоната за самоличност, за разлика от това, което можете да направите с други колони с израз за актуализиране.

Въпреки че има някои алтернативи за постигане на подобен вид изискване.

  • Кога стойността на колоната за идентичност трябва да бъде актуализирана за нови записи

Използвайте DBCC CHECKIDENT който проверява текущата стойност на самоличността за таблицата и ако е необходимо, променя стойността на самоличността.

DBCC CHECKIDENT('tableName', RESEED, NEW_RESEED_VALUE)
  • Кога стойността на колоната за идентичност трябва да бъде актуализирана за съществуващи записи

Използвайте IDENTITY_INSERT който позволява вмъкване на изрични стойности в колоната за идентичност на таблица.

SET IDENTITY_INSERT YourTable {ON|OFF}

Пример:

-- 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. Какво се случва с идентификатора на първичния ключ, когато надхвърли лимита?

  2. Как да ПРОМЕНЯ няколко колони наведнъж в SQL Server

  3. Как да актуализирате две таблици в един израз в SQL Server 2005?

  4. T-SQL получава брой работни дни между 2 дати

  5. Алгоритъм за сортиране по GUID на SQL Server. Защо?