IDENTITY_INSERTの使い方についての説明
IDENTITY_INSERTは、SQL Serverで使用されるオプションであり、データを挿入する際に表に指定された識別列の値を挿入することを許可します。
SQL Serverにおいて、識別列とは、自動的に増加する数値列を指し、その値はデータベースによって生成されます。データを挿入する際、表に識別列がある場合、通常はその列の値が自動的に生成され、手動で指定することはできません。
しかし、特定の場合には、データベースが自動的に生成するのではなく、識別列の値を手動で指定したい場合があります。これがIDENTITY_INSERTを使用するシーンです。
IDENTITY_INSERT の使用方法は次のとおりです:
- 最初、ALTER TABLE 文を使用して、識別列の挿入を有効にします。例えば、テーブル名が「myTable」で、識別列が「ID」である場合、次の文を実行できます:
- myTableというテーブルを変更し、IDENTITY_INSERTをオンに設定します。
- ALTER TABLE 権限を持つユーザーだけがこの操作を実行できることに注意してください。
- 例えば、标识列を使用して挿入後、挿入ステートメントを実行し、手動で标识列の値を指定することができます。
- 私のテーブルにデータを挿入する:(ID、名前)の値を(1、ジョン)に設定します。
- この例では、ID列の値を1に手動で指定しました。
- 挿入後、もう手動で識別列の値を指定する必要がない場合、次の文を使用して識別列の挿入を無効にするべきです:
- myTableというテーブルのIDENTITY_INSERTをOFFに設定します。
- ALTER TABLE 権限を持つユーザーのみがこの操作を実行できます。
IDENTITY_INSERT を使用する際には、以下の点に注意する必要があります。
- 各表には、1つの有効な識別列のみを持つことができます。
- Once the identity column is enabled for insertion, the inserted values must be unique, otherwise an error will occur.識別列の挿入が有効になっている場合、挿入される値は一意でなければならず、そうでない場合はエラーが発生します。
- 自動生成された識別列値が指定されていない場合、識別列の挿入が有効になります。
- 識別列の挿入中には、識別列の現在値を変更できません。
- デフォルト値「OFF」にリセットされます。
要点:IDENTITY_INSERT は、SQL Server のオプションで、データを挿入する際に識別列の値を手動で指定できるようにします。ALTER TABLE ステートメントを使用して識別列の挿入を有効にし、その後、挿入ステートメントを実行して識別列の値を手動で指定できます。挿入が完了したら、識別列の挿入を無効にする必要があります。