SQL SERVER における自動採番機能
SQL Serverでは、IDENTITYを使用して自動的に増加する列を作成します。この列の値はデータベースによって自動生成されます。IDENTITY列は主に、テーブル内の各行に一意の識別子を付与するために使用されます。
SQL ServerでIDENTITY列を作成するには、次の構文を使用します。
CREATE TABLE table_name
(
column_name data_type IDENTITY( start_value , increment_value )
)
テーブル名を表すtable_name、IDENTITY列の名称を表すcolumn_name、列のデータ型を表すdata_type、IDENTITY列の開始値を表すstart_value、IDENTITY列の増加値を表すincrement_valueで構成されます。
本質的にこれは、単一のプラットホームにサービスを統合することであり、それらサービスへのアクセスを容易にするものである。
CREATE TABLE Customers
(
CustomerID int IDENTITY(1,1) PRIMARY KEY,
CustomerName varchar(255) NOT NULL,
City varchar(255)
)
上記の例では、CustomerID列がIDENTITYとして定義され、1から始まり、1ずつ増加します。また、主キー列として指定されています。
IDENTITYカラムの値を指定せずにデータをインサートした場合、データベースが自動的に重複のない値を生成します。例えば:
INSERT INTO Customers (CustomerName, City)
VALUES ('John Doe', 'New York')
その時、CustomerID列の値は自動生成されて表に挿入されます。
ご注意ください
- 同一テーブル内でIDENTITY列を設定できるのは1つのみです。
- IDENTITY 列を作成すると、自動的に値は昇順で割り当てられるため、手動で指定する必要がありません。
- IDENTITY_INSERTをONにすることで、IDENTITY列に任意の値を挿入できる。
- IDENT_CURRENT関数は、IDENTITYカラムの現在の値を取得するために使用できます。
- 最近の挿入された行のIDENTITY列の値を取得するには、SCOPE_IDENTITY関数を使用します。