ホームページ >データベース >mysql チュートリアル >SQL Server の IDENTITY_INSERT をいつ、どのように使用する必要がありますか?
SQL Server 2008 の IDENTITY_INSERT の詳細な説明
SQL Server では、IDENTITY_INSERT
は、データベースが ID 列の明示的な値を受け入れるかどうかを決定するキー設定です。 OFF に設定すると、データベースは INSERT 操作中にこれらの列の値を自動的に生成します。ただし、場合によっては、値を手動で挿入するには IDENTITY_INSERT
を ON に設定する必要があります。
なぜ IDENTITY_INSERT を無効にして有効にするのですか?
IDENTITY_INSERT
を無効にする一般的な理由は、データの整合性を強制することです。明示的な値の挿入を防ぐことで、データベースは連続した ID 値を確実に生成し、重複エントリのリスクを軽減します。ただし、外部ソースからのデータのインポートなど、一部の特定のタスクでは、ID 値を手動で割り当てる必要がある場合があります。
SQL クエリを使用して IDENTITY_INSERT を有効にする
SQL Server 2008 で IDENTITY_INSERT
を有効にするには、次のクエリを実行します:
<code class="language-sql">SET IDENTITY_INSERT Database.dbo.Baskets ON</code>
「Database」と「dbo」を対応するデータベース名とスキーマ名に置き換えます。このクエリを実行した後、手動挿入を続行できます。
コード内で有効な IDENTITY_INSERT の処理
クエリの使用が有効になっていても IDENTITY_INSERT
、INSERT 操作中にエラーが発生する場合は、アプリケーション コードが原因である可能性があります。コードで ID 列を明示的に設定しようとしないようにしてください。 IDENTITY_INSERT
が OFF に設定されている場合、コードで指定された明示的な値に関係なく、データベースは自動的に値を割り当てます。
手動挿入が完了したら、必ず IDENTITY_INSERT
を OFF に戻してデータの整合性を復元してください。次のクエリを使用して無効にします:
<code class="language-sql">SET IDENTITY_INSERT Database.dbo.Baskets OFF</code>
以上がSQL Server の IDENTITY_INSERT をいつ、どのように使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。