Вы не можете обновить столбец идентификаторов.Вы можете вставить новые записи с явным значением, используя IDENTITY_INSERT
, но SQL Server не позволит вам выполнить обновление.
Если вам действительно нужно это сделать, единственный вариант - временно скопировать всю таблицу и заново создать итоговую таблицу с обновленными значениями. Настоятельно НЕ рекомендуется :
Создать копию вашей таблицы со всеми связанными объектами (индексами, ограничениями и т. Д.),но без строк (только объекты схемы).
CREATE TABLE TABLENAME_Mirror (
ExampleID INT IDENTITY,
TID VARCHAR(100),
KID VARCHAR(100),
STREET VARCHAR(100))
Установите IDENTITY_INSERT ON
в этой новой таблице и вставьте записи с обновленными значениями .
SET IDENTITY_INSERT TABLENAME_Mirror ON
INSERT INTO TABLENAME_Mirror (
ExampleID,
TID,
KID,
STREET)
SELECT
/*Updated values*/
FROM
--....
SET IDENTITY_INSERT TABLENAME_Mirror OFF
Удалите исходную таблицу и переименуйте скопированную таблицу в исходное имя:
BEGIN TRANSACTION
IF OBJECT_ID('dbo.TABLENAME') is not null
DROP TABLE dbo.TABLENAME
EXEC sys.sp_rename
'dbo.TABLENAME_Mirror',
'TABLENAME'
COMMIT
Возможно, вам потребуется повторно заполнить удостоверение с помощьюправильное значение после вставки строк, если вы хотите сохранить то же начальное значение, что и раньше.