Не можете да променяте съществуващите колони за идентичност.
Имате 2 опции,
-
Създайте нова таблица с идентичност и пуснете съществуващата таблица
-
Създайте нова колона с идентичност и пуснете съществуващата колона
Подход 1. (Нова таблица ) Тук можете да запазите съществуващите стойности на данни в новосъздадената колона за идентичност. Имайте предвид, че ще загубите всички данни, ако „ако не съществува“ не е изпълнено, така че се уверете, че сте поставили и условието в отпадането!
CREATE TABLE dbo.Tmp_Names
(
Id int NOT NULL
IDENTITY(1, 1),
Name varchar(50) NULL
)
ON [PRIMARY]
go
SET IDENTITY_INSERT dbo.Tmp_Names ON
go
IF EXISTS ( SELECT *
FROM dbo.Names )
INSERT INTO dbo.Tmp_Names ( Id, Name )
SELECT Id,
Name
FROM dbo.Names TABLOCKX
go
SET IDENTITY_INSERT dbo.Tmp_Names OFF
go
DROP TABLE dbo.Names
go
Exec sp_rename 'Tmp_Names', 'Names'
Подход 2 (Нова колона ) Не можете да запазите съществуващите стойности на данни в новосъздадената колона за самоличност, колоната за самоличност ще съдържа последователността от числа.
Alter Table Names
Add Id_new Int Identity(1, 1)
Go
Alter Table Names Drop Column ID
Go
Exec sp_rename 'Names.Id_new', 'ID', 'Column'
Вижте следната публикация във форума на Microsoft SQL Server за повече подробности:
Как да промените колоната на identity(1,1)