最初にIdentityプロパティを理解することから始めましょう。次に、ステップに進むことができます。どのようにリセットできますか?以下のスクリプトを使用して、ID列を含むSQLServerテーブルを作成します
USE TEST GO
CREATE TABLE dbo.Person( ID INT IDENTITY(1,1), Name VARCHAR(10))
以下のステートメントを使用して、レコードの下に挿入しましょう
INSERT INTO dbo.Person(name)
VALUES ('Aamir')
INSERT INTO dbo.Person(Name)
VALUES ('Aamir Shahzad')
文字列のサイズが列のデータ型のサイズより大きいため、1つのレコードのみが挿入され、2番目のレコードは失敗します 図1-SQLServerテーブルにレコードを挿入
IDを確認する列の値: 列のID値を確認するには、以下のステートメントを使用できます
--Check the Identity Value of a Column
DBCC CHECKIDENT ('dbo.Person');
Fig 2- DBCC CHECKIDENT to see the Identity Value
2番目のレコードの挿入に失敗しましたが、ID値が増加しています。次のレコードを挿入すると、図3に示すように、そのID値は3になります。
削除後に列のID値をリセットする方法はいくつかあります。データ。
TRUNCATEを使用してID値をリセットします: テーブルからすべてを削除したいが、テーブルに外部キー関係がない場合は、テーブルを切り捨てることができます。これにより、データがクリーンアップされ、ID値が設定されます。 図3-切り捨てを使用してテーブルをクリーンアップし、ID値をリセットします
DBCC CHECKIDENTを使用してID値をリセットします: テーブルが他のテーブル(プライマリキーと外部キー)の関係にある場合、テーブルを切り捨てることはできません。その場合、Deleteステートメントを使用してテーブルから値を削除してから、ID値を設定する必要があります。
DBCC CHECKIDENT ('dbo.Person', RESEED, 0);
図4.テーブルからデータを削除し、DBCCCHECKIDENTを使用してID値を再シードします
ビデオデモ:SQLServerテーブルのID列の値をリセットする方法