ホームページ >データベース >mysql チュートリアル >SQL Server で ID 列の値を管理するにはどうすればよいですか?

SQL Server で ID 列の値を管理するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-07 13:47:39253ブラウズ

How Can I Manage Identity Column Values in SQL Server?

SQL Server での ID 列の管理

ID 列は、データベース テーブル内の行に一意の連続した識別子を提供します。デフォルトでは、SQL Server は行の挿入時にこの列に増分値を割り当てます。ただし、初期値が望ましくないほど大きいか、既存のテーブルの関係と競合する状況が発生する場合があります。

ID 列は更新できますか?

通常の列とは異なり、ID 列は UPDATE ステートメントを使用して直接更新できません。 SQL Server では、逐次的な整合性を維持し、データの整合性の問題を回避するために、このような変更を制限しています。

ID 列を更新する代替手段

ID 列を直接更新することはできませんが、次のような方法があります。特定のシナリオに応じた代替アプローチ:

1.新しいレコードの ID 値の調整:

新しいレコードの ID 値を変更するには、次の手順を実行します。

  • DBCC CHECKIDENT('tableName', RESEED, NEW_RESEED_VALUE) を実行します。 )。 「tableName」を実際のテーブル名に置き換え、「NEW_RESEED_VALUE」を希望の開始値に置き換えます。このコマンドは、現在の ID 値を確認し、必要に応じて指定された値に調整します。

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

既存のレコードの ID 値を更新するには、次のように IDENTITY_INSERT コマンドを使用できます:

  • Set IDENTITY_INSERT YourTable ON
  • 必要な ID 値と他の列を含むレコードを次のように挿入します。必要です。
  • 元のレコードを削除します。
  • IDENTITY_INSERT YourTable を OFF に設定します
SET IDENTITY_INSERT YourTable ON
INSERT INTO YourTable(IdentityCol, otherCol) VALUES(13,'myValue')
DELETE FROM YourTable WHERE ID=3
SET IDENTITY_INSERT YourTable OFF

既存のレコードを変更すると関係に影響を与える可能性があるため、この方法は慎重に進めてください。参照整合性制約。このような更新を実行する前に、バックアップを作成することをお勧めします。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。