1.創建序列
下面的示例創建名為 DecSeq 使用一個序列 十進制 具有介於 0 到 255 之間的數據類型。序列以 125 開始,每次生成數字時遞增 25。 因為該序列配置為可循環,所以,當值超過最大值 200 時,序列將從最小值 100 重新開始。
CREATE SEQUENCE Test.DecSeq AS decimal(3,0) START WITH 125 INCREMENT BY 25 MINVALUE 100 MAXVALUE 200 CYCLE CACHE 3
;
Test.DecSeq:指定數據庫中標識序列的唯一名稱。 類型是 sysname。
decimal:序列可定義為任何整數類型。 允許使用下面的類型。
tinyint -0 到 255 范圍
smallint -范圍-32,768 到 32,767
int -范圍-2,147,483,648 到 2,147,483,647
bigint -范圍-9223372036854775808 到 9223372036854775807
十進制 和 數值 小數位數為 0。
如果未不提供任何數據類型, bigint 數據類型用作默認值。
START WITH:啟動值 <常量> ,序列對象返回的第一個值。啟動 值必須是值小於或等於最大值並大於或等於序列對象的最小值。 新序列對象的默認起始值是升序序列對象的最小值和降序序列對象的最大值。
INCREMENT:增量值<常量>,該值用於遞增(或遞減),每次調用序列對象的值 NEXT VALUE FOR 函數。 如果增量是負值,則序列對象為降序,否則為升序。 增量不能為 0。 新序列對象的默認增量為 1。
MINVALUE:指定序列對象的邊界。 一個新序列對象的默認最小值是該序列對象的數據類型的最小值。 對於 tinyint 數據類型,此值為零,對於所有其他數據類型則為負數。
MAXVALUE:指定序列對象的邊界。 一個新序列對象的默認最大值是該序列對象的數據類型的最大值。
CYCLE:[周期 | NO CYCLE]此屬性指定當超過序列對象的最小值或最大值時,序列對象是應從最小值(對於降序序列對象,則為最大值)重新開始,還是應引發異常。 新序列對象的默認循環選項是 NO 。請注意,循環不從起始值重新開始,而是從最小值或最大值重新開始。
CACHE:緩存<常量> 通過最大限度地減少生成序列編號所需的磁盤 IO 數,可以提高使用序列對象的應用程序的性能。 默認值為 CACHE。
2.查詢序列
SELECT * FROM sys.sequences WHERE name = 'DecSeq' ;
3.獲取序列值(注意:每查詢一次,value的值就會增加1,這個1是根據創建序列時,increment設置的值有關,新建的序列第一次查詢時得到的值為start值)
SELECT NEXT VALUE FOR Test.DecSeq;
4.刪除序列
DROP sequence Test.DecSeq;