SQL基礎:SQL?Server中Sequence對象用法
時間:2024-02-14 10:20作者:下載吧人氣:18
一、Sequence簡介
Sequence對象對于Oracle用戶來說是最熟悉不過的數據庫對象了, 在SQL SERVER2012終于也可以看到這個對象了。Sequence是SQL Server2012推出的一個新特性。這個特性允許數據庫級別的序列號在多表或多列之間共享。
二、Sequence基本概念
Oracle中有Sequence的功能,SQL server類似的功能要使用identity列實現,但是identity列有很大的局限性。微軟終于在2012中添加了Sequence對象。與以往identity列不同的是:Sequence是一個 與架構綁定的數據庫級別的對象,而不是與具體的表的具體列所綁定。這就意味著Sequence帶來多表之間共享序列號的便利之外,還會帶來如下不利影響:
- 1、與identity列不同的是,Sequence插入表中的序列號可以被Update,除非通過觸發器來進行保護
- 2、與identity列不同,Sequence有肯能插入重復值(Sequence可以設置循環,對于循環的Sequence來說會有重復值)
- 3、Sequence僅僅負責產生序列號,并不負責控制如何使用序列號,因此當生成一個序列號被Rollback之后,Sequence會繼續生成下一個序列號,從而在序列號之間產生間隙
三、Sequence的用法
MSDN上對創建Sequence的語法如下:
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 } ]
[ ; ]
標簽MSSQL,SQLServer,技術文檔,數據庫,SQLSERVER
網友評論