ホームページ > データベース > mysql チュートリアル > SQL Server で ID 列をリセットまたは変更するにはどうすればよいですか?

SQL Server で ID 列をリセットまたは変更するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-07 13:51:44
オリジナル
1017 人が閲覧しました

How Can I Reset or Modify Identity Columns in SQL Server?

SQL Server の ID 列のリセット: 詳細な調査

SQL Server データベースで ID 列を更新することは、多くの場合困難なタスクです。他の列とは異なり、ID 列は作成後に変更できるように設計されていません。ただし、開始値が大きすぎる場合や関連テーブルと競合する場合など、この調整が必要になるシナリオもあります。

制限: ID 列の変更できない性質

UPDATE ステートメントを使用して ID 列の値を直接更新できないことに注意することが重要です。これは、ID 列がデータベース エンジンによって自動的に生成され、各行に一意の連続番号が付けられるように制御されるためです。

ID 列を変更する代替手段

機能がないにもかかわらずID 列を直接更新するために、SQL Server には同様の結果を達成するためのいくつかの方法が用意されています。アプローチの選択は、特定のシナリオと要件によって異なります。

1. DBCC CHECKIDENT: 新しいレコードの ID 値のリセット

DBCC CHECKIDENT は、テーブルの現在の ID 値を確認し、場合によってはリセットできるユーティリティ コマンドです。既存の行に影響を与えずに、新しく挿入されたレコードの開始値を調整する必要がある場合に使用できます。構文は次のとおりです:

DBCC CHECKIDENT('tableName', RESEED, NEW_RESEED_VALUE)
ログイン後にコピー

2. IDENTITY_INSERT: 既存のレコードの ID 値の更新

IDENTITY_INSERT は、ID 列への値の明示的な挿入を可能にするテーブル レベルのオプションです。これにより、既存のレコードの ID 列の値を変更できます。構文は次のとおりです。

SET IDENTITY_INSERT YourTable {ON|OFF}
ログイン後にコピー

IDENTITY_INSERT ON を設定すると、指定された ID 列値を持つレコードを挿入できます。レコードが挿入されたら、元の行を削除できます (外部キー制約が満たされていることを確認してください)。

IDENTITY_INSERT を使用した例

SET IDENTITY_INSERT YourTable ON
INSERT INTO YourTable(IdentityCol, otherCol) VALUES(13,'myValue')
DELETE FROM YourTable WHERE ID=3
SET IDENTITY_INSERT YourTable OFF
ログイン後にコピー

注意が重要ですIDENTITY_INSERT を使用する場合は、慎重に使用しないとデータの整合性が損なわれる可能性があるためです。

以上がSQL Server で ID 列をリセットまたは変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート