U kunt de bestaande kolommen voor identiteit niet wijzigen.
Je hebt 2 opties,
-
Maak een nieuwe tabel met identiteit en verwijder de bestaande tabel
-
Maak een nieuwe kolom met identiteit en laat de bestaande kolom vallen
Benadering 1. (Nieuwe tabel ) Hier kunt u de bestaande gegevenswaarden in de nieuw gemaakte identiteitskolom behouden. Houd er rekening mee dat u alle gegevens verliest als niet wordt voldaan aan 'indien niet bestaat', dus zorg ervoor dat u de voorwaarde ook op de drop zet!
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'
Benadering 2 (Nieuwe kolom ) U kunt de bestaande gegevenswaarden in de nieuw gemaakte identiteitskolom niet behouden. De identiteitskolom bevat de nummerreeks.
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'
Zie het volgende Microsoft SQL Server-forumbericht voor meer details:
Kolom wijzigen in identiteit(1,1)