O ile wiem, musisz utworzyć tabelę tymczasową z polem ID utworzonym jako IDENTITY, a następnie skopiować wszystkie dane z oryginalnej tabeli. Na koniec upuszczasz oryginalną tabelę i zmieniasz nazwę tymczasowej. To jest przykład z tabelą (o nazwie TestTable ), które zawiera tylko jedno pole o nazwie ID (liczba całkowita, nie TOŻSAMOŚĆ):
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