Voor zover ik weet, moet je een tijdelijke tabel maken met het ID-veld gemaakt als IDENTITY en vervolgens alle gegevens uit de originele tabel kopiëren. Ten slotte laat je de originele tabel vallen en hernoem je de tijdelijke. Dit is een voorbeeld met een tabel (genaamd TestTable ) dat slechts één veld bevat, genaamd ID (integer, non IDENTITY):
BEGIN TRANSACTION
GO
CREATE TABLE dbo.Tmp_TestTable
(
ID int NOT NULL IDENTITY (1, 1)
) ON [PRIMARY]
GO
SET IDENTITY_INSERT dbo.Tmp_TestTable ON
GO
IF EXISTS(SELECT * FROM dbo.TestTable)
EXEC('INSERT INTO dbo.Tmp_TestTable (ID)
SELECT ID FROM dbo.TestTable WITH (HOLDLOCK TABLOCKX)')
GO
SET IDENTITY_INSERT dbo.Tmp_TestTable OFF
GO
DROP TABLE dbo.TestTable
GO
EXECUTE sp_rename N'dbo.Tmp_TestTable', N'TestTable', 'OBJECT'
GO
COMMIT