SQLServerのシーケンスとIDENTITY列のサンプルです。
(確認環境:Microsoft Visual Studio Community 2019)
目次
サンプル | シーケンスとは |
シーケンスを作成する | |
シーケンスの現状の値を取得する | |
次の値を取得する | |
シーケンスを削除する | |
シーケンスをinsertする | |
IDENTITY列を作成する |
シーケンスとは
- シーケンスは値を採番したいときに使用します。
- 初期値や増分値等はシーケンス作成時に設定します。
- シーケンスは「順序」とも呼ばれます。
- シーケンスは、特定のテーブルに関連付けられていません。
→IDENTITY列は特定のテーブルの列のシーケンスです。 - 以下は、MicrosoftのCREATE SEQUENCE (Transact-SQL)のリンクです。
https://docs.microsoft.com/ja-jp/sql/t-sql/statements/create-sequence-transact-sql?view=sql-server-ver15
シーケンスを作成する
create sequence dbo.TestSeq1
as bigint
start with 1
INCREMENT BY 1;
1行目のcreate sequenceでTestSeq1というシーケンスを作成します。
2行目のbigintは、 シーケンスのデータ型です。
3行目は、初期値で1から始まります。
4行目は、シーケンスの値の増分で1ずつ増えていきます。
シーケンスは、プログラミングフォルダ配下にあります。
シーケンスの現状の値を取得する
SELECT current_value FROM sys.sequences WHERE name = 'TestSeq1';
current_valueは、現状の値を取得します。
結果は、以下のとおりです。
current_value |
---|
1 |
次の値を取得する
select next value for dbo.TestSeq1;
next valueで次の値になります。
SQL実行前に1で増分1の場合は、2になります。
シーケンスを削除する
drop sequence TestSeq1;
drop sequenceとシーケンス名を指定します。
シーケンスをinsertする
INSERT INTO syain(id,name)
VALUES(NEXT VALUE FOR TestSeq1,'鈴木');
列の値にNext Value For シーケンス名を指定します。
IDENTITY列を作成する
1.テーブル作成時またはテーブルの「デザイン」から行を右クリックしてプロパティをクリックします。
2.「IDENTITYの指定」の(IDである)を「はい」にします。
insert時のIDENTITY列の値は自動採番されます。
関連の記事