【シーケンス作成】
■スクリプトで作成
CREATE SEQUENCE [dbo].[SequenceSample] シーケンス名
AS [bigint]データ型
START WITH 1開始値
INCREMENT BY 1増分
MINVALUE 1最小値
MAXVALUE 9223372036854775807最大値
CYCLE 循環
CACHE
GO
■GUIで作成
①SSMSの データベース>データベース名>プログラミング>シーケンス名 で右クリック⇒新しいシーケンス
②前述のスクリプトと同様の形式で作成
【実行(値取得)】
ストアドで、実行結果を変数に格納
DECLARE @intSeqNo INT; SET @intSeqNo = NEXT VALUE FOR dbo.SequenceSample
select分で取得した一覧の各行にシーケンス番号を付与
SELECT NEXT VALUE FOR dbo.SequenceSample, * FROM sys.objects
[参考]
http://technet.microsoft.com/ja-jp/magazine/hh407114.aspx
【シーケンスを1に戻す】
ALTER SEQUENCE [dbo].[SequenceSample] RESTART WITH 1;
※シーケンスはMERGE句、関数などでは使えない!
メッセージ 11719、レベル 15、状態 1、プロシージャ Function1、行 27
NEXT VALUE FOR 関数は、CHECK 制約、既定のオブジェクト、計算列、ビュー、ユーザー定義関数、ユーザー定義集計、ユーザー定義テーブル タイプ、サブクエリ、共通テーブル式、および派生テーブルでは使用できません。