web-dev-qa-db-ja.com

SQL Server 2008でテーブルIDを再シードし、すべてを安全に元に戻す方法は?

これはテストのためだけに行う必要がありますが、テストが完了したら元に戻します。

オンラインでテーブルを再シードする方法に関するチュートリアルをいくつか見ましたが、テーブルを元に戻す方法についてはそれほどではありません。

テーブルの定義が次のとおりだとします。

create table beer
(
 beer_id  numeric(10) not null,
 mnemonic        nvarchar(8)
);
go

新しいIDを一時的に12345で開始し、最後に新しい行を削除して、次のIDを元のIDに設定するとします。

57
Hamish Grubijan

一部のユーザーからのスキーマ制限があり、エラーが発生する場合があります(「TableName」という名前のテーブルまたはオブジェクトが見つかりません。システムカタログを確認してください)。そのため、以下のコードに従うことが最善です。

Schema.TableNameはアポストロフィで囲む必要があります

DECLARE @SeedValue INT
SET @SeedValue = (SELECT MAX(ColumnName) FROM Schema.TableName)
DBCC CHECKIDENT ('Schema.TableName',RESEED,@SeedValue)
1
Babulal