<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
SequenceNumber是SQL Server2012推出的一個新特性。這個特性允許資料庫級別的序列號在多表或多列之間共用。對於某些場景會非常有用,比如,你需要在多個表之間公用一個流水號。以往的做法是額外建立一個表,然後儲存流水號。而新插入的流水號需要兩個步驟:
現在,利用SQL Server2012中的Sequence.這類操作將會變得非常容易。
SequenceNumber的概念並不是一個新概念,Oracle早就已經實現了(http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_6015.htm)。與以往的Identity列不同的是。SequenceNumber是一個與構架繫結的資料庫級別的物件,而不是與具體的表的具體列所繫結。這意味著SequenceNumber帶來多表之間共用序列號的遍歷之外,還會帶來如下不利影響:
SequenceNumber在MSDN中定義的原型如程式碼1所示。
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 } ] [ ; ]
程式碼1.Sequence的建立原型
由程式碼1看以看到,引數相對比較簡單。從指定資料型別(INT相容)到開始計數點,步長,最大值和最小值,是否迴圈和是否快取幾個引數來設定Sequence。
下面圖1建立了一個簡單的Sequence。
圖1.建立一個簡單的Sequence並進行使用
此時,我們可以通過SQL Server 2012新增的檢視sys.sequences來看到剛才建立成功的Sequence,如圖2所示.
圖2.sys.sequences檢視
當然我們可以這個序列按照順序插入表,如圖3所示。
圖3.在單表中插入序列
而SequenceNumber最重要的功能是在多表間共用序列號,如圖4所示。
圖4.多表之間利用Sequence共用序列號
前面圖2可以看到,如果我們不指定Sequence的上限和下限,則預設使用所指定資料型別的最大值和最小值作為上限和下限(如圖2INT型別的的上下限).當達到上線後,可以指定迴圈來讓Sequence達到上限後從指定的開始值重新開始迴圈。如圖5所示。
圖5.Sequence設定上限下限和迴圈
還可以通過修改Sequence將其初始值指定為一個特定值,如圖6所示。
圖6.重置Sequence的值
Sequence一個需要注意的情況是Sequence只負責生成序列號,而不管序列號如何使用,如果事務不成功或回滾,SequenceNumber仍然會繼續向後生成序列號,如圖7所示。
圖7.Sequence僅僅負責生成序列號
我們還可以為Sequence指定快取選項,使得減少IO,比如,我們指定Cache選項為4,則當前的Sequence由1增長過4後,SQL Server會再分配4個空間變為從5到8,當分配到9時,SQL Server繼續這以迴圈,如果不指定Cache值,則值由SQL Server進行分配。一個簡單的例子如圖8所示。
圖8.為Sequence設定Cache選項
本文講述了SequenceNumber的簡單用法。Sequence是一個比較方便的功能,如果使用妥當,將會大大減少開發工作和提升效能。
參考資料:
CREATE SEQUENCE (Transact-SQL)
到此這篇關於SQL Server新特性SequenceNumber用法的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45