もっと詳しく

SQL Serverには、シリアル列または自動インクリメント列を作成できるID句が用意されています。 列がID列として設定されている場合、新しいレコードがテーブルに追加されると、その値が自動的に生成されます。

これにより、データベースを手動で検査しなくても、各列に一意の識別子を設定できます。

SQL Server Identity

SQL Serverでは、次のようにID列を作成できます。

作成 テーブル TABLE_NAME((
column_name INT 身元
)。;

上記で指定した列の値は、新しいレコードを追加すると自動的に生成されます。

以下に示す簡単な例を考えてみましょう。

作成 テーブル ユーザー((
id INT 身元
名前 VARCHAR((255)。
)。;

通常の状況では、データ挿入時にID列の値を指定する必要はありません。 前述のように、値は次のようにレコード挿入ごとに自動生成されます。

入れる の中へ ユーザー((名前)。 ((「ドロシー・ミシェル」)。;

上記は、id列に一意の値を持つレコードをテーブルに挿入する必要があります。 例えば:

指定しなかったにもかかわらず、id列に値が含まれていることに注意してください。 これがID列の力です。

SQLServerでIDの挿入を許可

しかし、ID列の値を手動で追加しようとするとどうなりますか? 例えば:

入れる の中へ ユーザー((id 名前)。 ((2 「ジェフ・アーティ」)。;

上記のクエリは、次のようなエラーを返します。

SQL Serverは、ID挿入に値を明示的に追加することを防ぎます。

これは、SQLServerでID挿入機能を有効にすることで解決できます。

このコマンドの構文は次のとおりです。

セットする IDENTITY_INSERT TABLE_NAME オン

ユーザーのテーブルでID挿入を有効にするには、次のコマンドを実行します。

セットする IDENTITY_INSERTユーザー オン;

特定のテーブルでID挿入を無効にするには、値をOFFに設定します。

SQLServerのシードID列

テーブルからレコードを削除すると、そのIDの列の値は再利用されません。 これにより、データベースの不整合や断片化が発生する可能性があります。

次のコマンドに示すように、再シードすることでID列を同期できます。

DBCCチェックID ((TABLE_NAME シード 1)。

上記のクエリは、インデックス1から始まる指定されたテーブルのID列を再シードする必要があります。

結論

この記事では、SQLサーバーのID列と、テーブルでID列を有効または無効にする方法について説明しました。

これがお役に立てば幸いです。

The post SQLID挿入 appeared first on Gamingsym Japan.