SQLServer シーケンスとIDENTITY列のサンプル

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列の値は自動採番されます。

関連の記事

SQLServer Profiler 実行されたSQLを確認

△上に戻る