From :https://msdn.microsoft.com/zh-cn/library/ff878091.aspxui
語法:spa
CREATE SEQUENCE [schema_name . ] sequence_name [ AS [ built_in_integer_type | user-defined_integer_type ] ] [ START WITH <constant> ] [ INCREMENT BY <constant> ] [ { MINVALUE [ <constant> ] } | { NO MINVALUE } ] [ { MAXVALUE [ <constant> ] } | { NO MAXVALUE } ] [ CYCLE | { NO CYCLE } ] [ { CACHE [ <constant> ] } | { NO CACHE } ] [ ; ]
[ built_in_integer_type | user-defined_integer_type
序列可定義爲任何整數類型。
A sequence can be defined as any integer type.
容許使用下面的類型。
tinyint -0 到 255 範圍
smallint -範圍-32,768 到 32,767
int -範圍-2,147,483,648 到 2,147,483,647
bigint -範圍-9223372036854775808 到 9223372036854775807
十進制和數值小數位數爲 0。
基於這些容許類型之一的任何用戶定義數據類型(別名類型)。code
egblog
CREATE SEQUENCE [dbo].[sq_demo] AS [BIGINT] START WITH 1000001 INCREMENT BY 1 MINVALUE -9223372036854775808 MAXVALUE 9223372036854775807 CACHE GO
From:https://technet.microsoft.com/zh-cn/library/ff878370.aspx
語法
NEXT VALUE FOR [ database_name . ] [ schema_name . ] sequence_name
[ OVER (<over_order_by_clause>) ]
eg:
SELECT NEXT VALUE FOR sq_demo
SELECT dbo.GetNextVal('demo')
1.建立序列ci
下面的示例建立名爲 DecSeq 使用一個序列 十進制 具備介於 0 到 255 之間的數據類型。序列以 125 開始,每次生成數字時遞增 25。 由於該序列配置爲可循環,因此,當值超過最大值 200 時,序列將從最小值 100 從新開始。rem
CREATE SEQUENCE Test.DecSeq AS decimal(3,0) START WITH 125 INCREMENT BY 25 MINVALUE 100 MAXVALUE 200 CYCLE CACHE 3 ;
--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;
CREATE SEQUENCE [dbo].[sq_CodeNumber] AS [BIGINT] START WITH 1000000001 INCREMENT BY 1 MINVALUE 1000000001 MAXVALUE 9999999999 CYCLE CACHE GO