私の知る限り、IDENTITY として作成された ID フィールドを持つ一時テーブルを作成し、元のテーブルからすべてのデータをコピーする必要があります。最後に、元のテーブルを削除し、一時テーブルの名前を変更します。これは、テーブル (TestTable という名前のテーブル) の例です。 ) ID (整数、非 IDENTITY) と呼ばれる 1 つのフィールドのみを含む:
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