SQL Server の自動採番機能

SQL Serverでは、IDENTITYは自動的に増加する数値列を生成するために使われます。INT、BIGINT、SMALLINTなど、整数型の列と一緒に使えます。

IDENTITY の使い方は次のとおりです。

  1. IDENTITYキーワードを使用して自動採番カラムを定義してテーブルを作成する。
CREATE TABLE TableName
(
IDColumnName INT IDENTITY(1,1) PRIMARY KEY,
OtherColumns...
)

上記のコードではIDColumnNameは自動採番カラムの名称で、INTはカラムのデータ型、IDENTITY(1, 1)は1から始め、1ずつ増加させることを示しています。

  1. 挿入する際に、自動採番された値を指定する必要はなく、データベース側で自動的に一意の値が生成されます。
INSERT INTO TableName (OtherColumns...) VALUES (OtherValues...)

既存の最大の値に従って自増列の値は自動的に増加します。

  1. 挿入したばかりのレコードの自動採番カラムの値を取得する場合は、@@IDENTITY または SCOPE_IDENTITY()関数を使用できます。
SELECT @@IDENTITY
SELECT SCOPE_IDENTITY()

@@IDENTITY は最後に挿入された ID 列の値を返し、SCOPE_IDENTITY() は現在のセッション内で最後に挿入された ID 列のみを返します。

  1. 手動でオートインクリメント列の値を挿入する場合は、SET IDENTITY_INSERT ON ステートメントを使用できます。
SET IDENTITY_INSERT TableName ON
INSERT INTO TableName (IDColumnName, OtherColumns...) VALUES (NewValue, OtherValues...)
SET IDENTITY_INSERT TableName OFF

この際、挿入した自動連番列の値は指定のNewValueに置き換えられます。

テーブル作成時に設定したIDENTITY列の値は、設定後に変更することはできないことに注意してください。IDENTITY列の値を変更する必要がある場合は、テーブルを削除して再作成することを検討してください。また、IDENTITY列の値はデータ挿入時に生成されるため、挿入が失敗した場合、IDENTITY列の値は増加しません。

コメントを残す 0

Your email address will not be published. Required fields are marked *


广告
広告は10秒後に閉じます。
bannerAds