Sie können die vorhandenen Spalten für die Identität nicht ändern.
Sie haben zwei Möglichkeiten,
-
Erstellen Sie eine neue Tabelle mit Identität und löschen Sie die vorhandene Tabelle
-
Erstellen Sie eine neue Spalte mit Identität und löschen Sie die vorhandene Spalte
Ansatz 1. (Neue Tabelle ) Hier können Sie die vorhandenen Datenwerte in der neu erstellten Identitätsspalte beibehalten. Beachten Sie, dass Sie alle Daten verlieren, wenn 'wenn nicht vorhanden' nicht erfüllt ist, stellen Sie also sicher, dass Sie die Bedingung auch auf den Drop setzen!
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'
Ansatz 2 (Neue Spalte ) Sie können die vorhandenen Datenwerte in der neu erstellten Identitätsspalte nicht beibehalten. Die Identitätsspalte enthält die Zahlenfolge.
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'
Weitere Einzelheiten finden Sie im folgenden Beitrag des Microsoft SQL Server-Forums:
So ändern Sie die Spalte in Identität (1,1)