Du kan inte ändra befintliga kolumner för identitet.
Du har två alternativ,
-
Skapa en ny tabell med identitet och släpp den befintliga tabellen
-
Skapa en ny kolumn med identitet och släpp den befintliga kolumnen
Tillvägagångssätt 1. (Ny tabell ) Här kan du behålla de befintliga datavärdena på den nyskapade identitetskolumnen. Observera att du kommer att förlora all data om "om inte existerar" inte är uppfyllt, så se till att du också släpper villkoret!
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'
Metod 2 (Ny kolumn ) Du kan inte behålla de befintliga datavärdena i den nyskapade identitetskolumnen. Identitetskolumnen kommer att innehålla nummersekvensen.
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'
Se följande Microsoft SQL Server Forum-inlägg för mer information:
Hur man ändrar kolumn till identitet(1,1)