Nie możesz zmienić istniejących kolumn tożsamości.
Masz 2 opcje,
-
Utwórz nową tabelę z tożsamością i upuść istniejącą tabelę
-
Utwórz nową kolumnę z tożsamością i upuść istniejącą kolumnę
Podejście 1. (Nowa tabela ) Tutaj możesz zachować istniejące wartości danych w nowo utworzonej kolumnie tożsamości. Zwróć uwagę, że stracisz wszystkie dane, jeśli nie jest spełniony warunek „jeśli nie istnieje”, więc upewnij się, że ustawiłeś również ten warunek!
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'
Podejście 2 (Nowa kolumna ) Nie możesz zachować istniejących wartości danych w nowo utworzonej kolumnie tożsamości. Kolumna tożsamości będzie przechowywać sekwencję liczb.
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'
Więcej informacji można znaleźć w następującym poście na forum Microsoft SQL Server:
Jak zmienić kolumnę na tożsamość(1,1)