SQL Server では、シーケンスを使用できません。
SQL Server において、シーケンスとはユニークな連番を生成するオブジェクトであり、主キーや一意な数値が必要なその他の列の生成に使用することができます。
Sequence の構文は次のようになります。
- シーケンスオブジェクトを作成します。
CREATE SEQUENCE sequence_name
AS data_type
START WITH start_value
INCREMENT BY increment_value
MINVALUE min_value
MAXVALUE max_value
CYCLE | NO CYCLE
CACHE cache_size;
内訳として
- シーケンス名はSequenceのものです。
- data_type は Sequence で生成される数値のデータ型で、INT や BIGINT などがあります。
- start_valueはSequenceで生成された最初の数値です。
- increment_valueは、生成される数値ごとの増加量のことです。
- min_valueはSequenceが生成する最小値です。
- max_valueはシーケンス生成の最大値です。
- 最大値に達したら最小値からサイクルを繰り返すかどうかを示します。
- キャッシュサイズとは、メモリ上にキャッシュされる値の量のことです。
- シーケンスによる数値生成
NEXT VALUE FOR sequence_name
NEXT VALUE FOR ステートメントを使用すると、シーケンスによって生成される次の値を取得できます。
例えば、シーケンスオブジェクトを作成し、それを使って数値のシーケンスを生成する例
CREATE SEQUENCE seq_employee_id
AS INT
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 1000
NO CYCLE
CACHE 10;
-- 使用Sequence生成数值
SELECT NEXT VALUE FOR seq_employee_id;
-- 结果为1
SELECT NEXT VALUE FOR seq_employee_id;
-- 结果为2
シーケンスを使用すれば、一意で重複のない数値が生成可能です。主キーや一意識別子、その他一意の数値が必要となる列の作成にあてることができます。