SQLServerで、自動採番列(IDENTITY列)を持ったテーブルを作成するサンプルです。
構文
- (IDENTITY構文)
- IDENTITY(<開始番号>, <増分>)
例えば1番から始まり1づつ増えるようにしたい場合はIDENTITY(1,1)とします。
サンプル
例)NO列をIDENTITY型としたM_SYOHINテーブルを作成する
1 2 3 4 5 |
CREATE TABLE M_SYOHIN( NO int IDENTITY(1,1) NOT NULL, NAME varchar(100), PRICE decimal(9,2) ) |
自動採番列は1テーブルに1つのみ作成可能です。
1テーブルに複数のIDENTITY列を定義しようとすると以下のエラーが発生します。
- (例)
- メッセージ 2744、レベル 16、状態 2、行 1 テーブル 'XXX' に複数の ID 列が指定されています。テーブルごとに 1 つだけしか ID 列を指定できません。
IDENTITY列にINSERTするとエラーになります。
- (例)
- insert into M_SYOHIN(no, name, price) values(1,'りんご', 150) メッセージ 544、レベル 16、状態 1、行 1 IDENTITY_INSERT が OFF に設定されているときは、テーブル 'M_SYOHIN' の ID 列に明示的な値を挿入できません。
備考
- IDENTITY列に値をINSERTしたい場合は以下記事をご覧ください。
⇒ [SQLServer] 自動採番列(IDENTITY列)に値をINSERTする