【SQL Server】IDENTITY で自動採番する

SQL Serverのテーブル列に自動採番する「IDENTITY」を解説します。

番号をふる IDENTITY

IDENTITYの構文

SQL Serverはテーブル列に自動で番号を連番で採番するようにできます。Accessのオートナンバー型に相当するものです。データを登録するたびに、番号が「1,2,3・・・」のように順番にふられていきます。

SQL ServerにもAccessのオートナンバー型に相当するものがあります。それが「IDENTITY」です。

アプリケーション側で番号を採番しなくてもいいのと、登録順がわかるようになるので使い道はあるかと思います。

IDENTITY(開始番号, 増加数)

開始番号からスタートし、増加数で指定した数だけ順番に増えていきます。

IDENTITYの設定方法

SQL Serverのテーブルの列を自動採番するように「IDENTITY」を設定する方法を解説します。

例1. テーブル作成時にIDENTITYを設定するパターン

--テーブルを作成時にIDENTITYを設定する
CREATE TABLE dbo.emp
(empno varchar(20) not null
,empname varchar(50)
,insno int IDENTITY(1,1)
);

この例ではテーブル作成時にIDENTITYを設定しました。「insno」列に、1からはじまり1ずつ増えていくようにしました。

例2. 列を追加時にIDENTITYを設定するパターン

--テーブルに列を追加し、IDENTITYを設定する
ALTER TABLE dbo.emp add insno int IDENTITY(100,1);

この例ではテーブル作成後にIDENTITYを設定しました。「insno」列に、100からはじまり1ずつ増えていくようにしました。

例3. SQL Server Management Studio (SSMS)でIDENTIFYを設定するパターン

まずはSQL Server Management Studio (SSMS)を起動します。オブジェクトエクスプローラー(左メニュー)の該当のテーブルを右クリックして、「デザイン」をおします。

上側で該当列を選択します。そして下側で「IDENTITYの指定」の「IDである」の「いいえ」を「はい」に変更します。

「IDの増分」「IDENTITYシード」は1からスタートして1ずつ増加していくようにそれぞれ1にします。任意の値に変えてください。

参照:CREATE TABLE (Transact-SQL) IDENTITY

以上、SQL Serverのテーブル列に自動採番する「IDENTITY」でした。

コメント