0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SQL ServerでSEQUENCEを作成

Posted at

挨拶

初めまして、日本システム開発株式会社の鈴木です。
技術者として更なる向上を目指すためQiitaアウトプットをする取り組みを行っています。
技術者としては経験が浅く発信内容はとにかく試したものの覚書になります。
今回は業務上で使用したSQL ServerのSequenceについて備忘録をつけていきます。

要件

業務上連番付きのファイルを作成する必要が発生しました。以下のような連番を発行する必要があったため、Sequenceで実装することとなりました。
・001~999の範囲の数字
・増分は1ずつ
・999の次は001

実装

今回は以下のようなSequenceを作成しました。

CREATE SEQUENCE file_seq
START WITH 1
MINVAL 1
MAXVAL 999
CYCLE
CACHE

値を取り出すときはSELECT NEXT VALUE FOR ~を使用します。

※また、このままですと値は1,2,3,...,999であるため001,002,003,...,999とするため「取り出した値の先頭に00を付与し末尾3桁を切り出す」という処理を挟んでいます。

設定意図

すべての設定項目については公式リファレンスを参照。

AS 型名

シーケンスの型
設定値は省略=bigint型
値の範囲としてはtinyintでも問題ないがわざわざtinyintを設定する意義も大きくなかったためデフォルト値を使用。

START WITH 1

開始値
仕様から1を開始値としました。

INCREMENT BY

一度のNEXT VALUE FORで増える増分
設定値は省略=1
増分が1であるためデフォルト値を使用。

MINVAL 1

最小値
仕様から開始値と同様に1に設定

MAXVAL 999

最大値
仕様から999に設定

CYCLE

循環するか否か
999から1に戻るとの仕様からオンに設定

CACHE

キャッシュ使用可否
連続で呼び出されることが予想されたため、オンに設定

公式リファレンス

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?