ホームページ >データベース >mysql チュートリアル >SQL Server 2008 で IDENTITY_INSERT を有効および無効にして、制御された ID 列の挿入を行う方法

SQL Server 2008 で IDENTITY_INSERT を有効および無効にして、制御された ID 列の挿入を行う方法

Barbara Streisand
Barbara Streisandオリジナル
2025-01-09 08:57:41760ブラウズ

How to Enable and Disable IDENTITY_INSERT in SQL Server 2008 for Controlled Identity Column Insertions?

SQL Server 2008: IDENTITY_INSERT を使用した ID 列の挿入の管理

SQL Server データベースでは、ID 列に値を手動で挿入する必要がある状況が発生します。 ただし、IDENTITY_INSERT はデフォルトで無効になっており、直接挿入できません。

IDENTITY_INSERT OFF エラーについて

IDENTITY_INSERT を OFF に設定して ID 列に値を挿入しようとすると、次のエラーが発生します:

IDENTITY_INSERT が OFF に設定されている場合、テーブル 'TableName' の ID 列に明示的な値を挿入できません。

これは、SQL Server が一意の ID 値を自動的に管理するためです。 IDENTITY_INSERT が OFF の場合、データベースは ID 列が空であることを想定し、次の連続値を割り当てることができます。

SQL Server Management Studio (SSMS) を使用して IDENTITY_INSERT を有効にする

SSMS の特定のテーブルに対して IDENTITY_INSERT を有効にするには:

  1. ターゲットテーブルを含むデータベースを右クリックします。
  2. 「新しいクエリ」を選択します。
  3. 次の T-SQL コマンドを実行します。<tablename> をテーブルの名前に置き換えます。
<code class="language-sql">SET IDENTITY_INSERT <tablename> ON;</code>
  1. 実行後、データを挿入します。 その後、忘れずに IDENTITY_INSERT を無効にしてください。

T-SQL を直接使用する

IDENTITY_INSERT を T-SQL 内で直接管理することもできます。

<code class="language-sql">SET IDENTITY_INSERT sometableWithIdentity ON;

INSERT INTO sometableWithIdentity (IdentityColumn, col2, col3, ...)
VALUES (AnIdentityValue, col2value, col3value, ...);

SET IDENTITY_INSERT sometableWithIdentity OFF;</code>

詳細なエラーメッセージ

エラー メッセージには影響を受けるテーブルが示され、問題の特定に役立ちます。例:

<code>Cannot insert explicit value for identity column in table 'Baskets' when IDENTITY_INSERT is set to OFF.</code>

IDENTITY_INSERT を一時的に有効にすることで、ID 列の値を制御します。 データベースの整合性と逐次的な ID 生成を維持するために、後で必ずこれを無効にしてください。

以上がSQL Server 2008 で IDENTITY_INSERT を有効および無効にして、制御された ID 列の挿入を行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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