ホームページ >データベース >mysql チュートリアル >SQL Server 2008 で IDENTITY_INSERT を有効および無効にして、制御された ID 列の挿入を行う方法
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
を有効にするには:
<tablename>
をテーブルの名前に置き換えます。<code class="language-sql">SET IDENTITY_INSERT <tablename> ON;</code>
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 サイトの他の関連記事を参照してください。