SQL SERVER Sequence Number 序列号

article/2025/9/15 9:17:48

SequenceNumber是SQL Server2012推出的一个 新特性。这个特性允许数据库级别的序列号在多表或 多列之间共享。对于某些场景会非常有用,比如,你 需要在多个表之间公用一个流水号。以往的做法是额 外建立一个表,然后存储流水号。而新插入的流水号
需要两个步骤:
1.查询表中流水号的最大值
2.插入新值(最大值+1)
现在,利用SQL Server2012中的Sequence.这类操 作将会变得非常容易。
SequenceNumber的概念并不是一个新概念,Oracle早就已经实现了

Identity:作用范围是限制本表
SequenceNumber是 一个与构架绑定的数据库级别的对象,而不是与具体 的表的具体列所绑定。
这意味着SequenceNumber带 来多表之间共享序列号的遍历之外,还会带来如下不 利影响:

• 与Identity列不同的是,Sequence插入表中的 序列号可以被Update,除非通过触发器来进行保护
• 与Identity列不同,Sequence有可能插入重复 值(对于循环SequenceNumber来说)
• Sequence仅仅负责产生序列号,并不负责控 制如何使用序列号,因此当生成一个序列号被 Rollback之后,Sequence会继续生成下一个号, 从而在序列号之间产生间隙【不连续】

SequenceNumber的用法 创建语法

CREATE SEQUENCE [schema_name . ] sequence_name
[ AS [ built_in_integer_type | user-defined_integer_type ] ]
[ START WITH ]
[ INCREMENT BY ]
[ { MINVALUE [ ] } |{ NO MINVALUE } ]
[ { MAXVALUE [ ] } |{ NO MAXVALUE } ]
[ CYCLE | { NO CYCLE } ]
[ { CACHE [ ] } | { NO CACHE } ]
[ ; ]

创建案例

Create Sequence dbo.demoSequence
as int
start with 1
Increment by 1------------------
select next value for dbo.demoSequence
select name,type_desc,start_value,increment,minimum_value,maximum_value,current_value,is_cached,cache_size
Create Sequence dbo.demoSequence
as int
start with 1
Increment by 1
---------------------
create table #test (id int
)
--插入测试数据
declare @index int
set @index=0
while (@index<50)
begininsert into #test(id) values(next value for dbo.demoSequence)set @index=@index+1
end
----展示测试数据
select *  from #test

sequence 最重要的功能便是{因为它是数据库级别的}在多表间共享序列号

----------创建序列号-------------
Create Sequence dbo.demoSequence
as int
start with 1
Increment by 1
----------创建临时测试表t1和临时测试表t2------------------
create table #t1
(id int
)
-----
create table #t2
(id int
)
-----插入测试数据
declare @index int
set @index=0
while (@index<50)
begininsert into #t1(id) values(next value for dbo.demoSequence)insert into #t2(id) values(next value for dbo.demoSequence)set @index=@index+1
end
-------展示测试数据select *  from #t1 
select *  from #t2
#t1 ——> id:0,2,4,6...
#t2 ——> id:1,3,5,7...
----------创建序列号-------------
Create Sequence dbo.demoSequence
as int
start with 1
Increment by 1
MaxValue 5
MinValue 1
Cycle
----------创建临时测试表t1和临时测试表t2------------------
create table #t1
(id int
)-----插入测试数据
declare @index int
set @index=0
while (@index<20)
begininsert into #t1(id) values(next value for dbo.demoSequence)insert into #t2(id) values(next value for dbo.demoSequence)set @index=@index+1
end
-------展示测试数据
select *  from #t1 #t1 ——> id:1,2,3,4,5,1,2,3,4,5,1....

重置

通过Alter修改Sequence将其初始化值指定为一个特定值

alter sequence dbo.demoSequence
reStart with 3

Sequence 缓存

简单来说就是一次生成多个序列号(个数=Cache指定的值),使得减少IO。

Create Sequence dbo.demoSequence
as int
start with 1
Increment by 1
MaxValue 5
MinValue 1
Cache 4

在这里插入图片描述

Sequence 注意事项

sequence 只负责生成序列号,而不管序列号如何使用,如果事物不成功或回滚,Sequence仍然会继承向后生成序列号
在这里插入图片描述


http://chatgpt.dhexx.cn/article/sX9wgKIK.shtml

相关文章

Snipaste介绍、安装、使用技巧(截图贴图工具)

一、简介 Snipaste 是一个简单但强大的截图贴图工具&#xff0c;也可以让你将截图贴回到屏幕上&#xff01;下载并打开 Snipaste&#xff0c;按下 F1 来开始截图&#xff0c;再按 F3&#xff0c;截图就在桌面置顶显示了。就这么简单&#xff01; 你还可以将剪贴板里的文字…

iMindMap汉化免费下载序列号

iMindMap 是思维导图创始人托尼巴赞&#xff08;Tony Buzan&#xff09;开发的思维导图软件&#xff0c;线条自由&#xff0c;具有手绘功能。它结合独特的自由形态头脑风暴视图模式和系统的思维导图视图模式&#xff0c;特别适用于头脑风暴、策划和管理项目、创建演示文稿等。思…

【综合】简单加解密——寻找序列号

【综合】简单加解密——寻找序列号 下面文字对你可能有用(复制粘贴): #include <stdlib.h> #include <string.h> #include “malloc.h” #define MaxPass 66 // 最多66段密文 #define NumbPwdTable 5 // 密码表的份数 #define SizePwdTable 0x210 // 每份密码表占…

Inpaint破解版 - 图片去水印神器

Inpaint是一款强大实用的图片去水印软件&#xff0c;您的图片中不想要的部分&#xff0c;如额外的线&#xff0c;人物&#xff0c;文字等……选定后补绘都会帮你全自动进行擦除&#xff0c;同时补绘会根据附近图片区域重建擦除的区域&#xff0c;使看起来完美无暇&#xff0c;没…

截图软件 : Snipaste

说到截图软件&#xff0c;用过win10、win11的同学第一个想到的应当是PrtSc键或WinShiftS启动系统自带的截图软件&#xff0c;再“老”一点的可能会想到QQ截图。小编在之前也是怎么想的&#xff0c;因此看到其他小编写关于截图软件的文章就很不屑&#xff0c;认为这是多此一举。…

Source Insight 4.0 序列号 license文件

安装程序下载 在官网上下载Source Insight 4.0的安装程序. 版本4.00.0098可用 已经分享到网盘 链接: https://pan.baidu.com/s/1xyprwNSXLpj7kpDa7LaF_Q 提取码: v3cy 版本4.00.0124可用 https://pan.baidu.com/s/1paa_48tv1c0AHhBapqo2TA?pwdxnsx 提取码: xnsx 30天的…

CorelDRAW2021序列号 专业的矢量图像设计软件

CorelDRAW是一款专业的图像设计软件&#xff0c;提供一站式的图片修改功能&#xff0c;附带功能强劲的点阵图向矢量图转化的工具&#xff0c;使用方便简单&#xff0c;是设计师们的必不可少的软件。详见文章内容。 CDR2021新功能&#xff1a; 1、颠覆性协作工具 CorelDRAW …

Android Doze模式分析

Android 6.0 Doze模式分析 Doze模式是Android6.0上新出的一种模式,是一种全新的、低能耗的状态,在后台只有部分任务允许运行,其他都被强制停止。当用户一段时间没有使用手机的时候,Doze模式通过延缓app后台的CPU和网络活动减少电量的消耗。PowerManagerService中也有Doze模…

Android的Doze模式

也是偶然之间听到这个词的 Doze模式 Doze模式 Doze 翻译为打盹, 那么Android的Doze模式呢 , 就是让手机进入了类似打盹的一个状态 , 在这个半梦半醒的状态下 , 手机的后台、服务、广播等都会发生相应的延迟。 Doze模式在Android M&#xff08;6.0&#xff09;时引入&#xff0c…

Android---Alarm定时任务 Doze模式

Android的定时任务有两种&#xff0c;一种是JavaAPI提供的Timer类&#xff0c;另一种就是使用Android的Alarm机制。 Timer不太适合那些需要长期在后台运行的定时任务&#xff0c;因为每个手机都有自己的休眠策略&#xff0c;Android手机长时间不操作就会导致Timer定时任务无法…

Android 8.1 Doze模式分析(三)——Deep Doze模式

概述 Deep Doze&#xff0c;也就是Android的Doze模式了&#xff0c;表示深度Doze&#xff0c;比起LightDoze&#xff0c;它将进行更多的限制&#xff1a;无法进行网络访问和 GPS/WLAN 扫描、唤醒被忽略、闹钟和作业/同步被延迟。当然&#xff0c;它的触发条件也将更加苛刻&…

Android7.0 Doze模式

在Android M中&#xff0c;Google就引入了Doze模式。它定义了一种全新的、低能耗的状态。 在该状态&#xff0c;后台只有部分任务被允许运行&#xff0c;其它任务都被强制停止。 本篇博客中&#xff0c;我们就来分析一下Android 7.0中Doze模式相关的流程。 一、基本原理 Do…

Android Doze模式和app Standby模式

对低电耗模式(app Standby)和应用待机模式(Doze)进行针对性优化 从 Android 6.0&#xff08;API 级别 23&#xff09;开始&#xff0c;Android 引入了两个省电功能&#xff0c;可通过管理应用在设备未连接至电源时的行为方式为用户延长电池寿命。低电耗模式通过在设备长时间处…

adb shell dumpsys deviceidle whitelist 打盹模式(Doze)白名单

Android 6.0开始引入了打盹模式(Doze)&#xff0c;若想使自己的App不受打盹模式的影响&#xff08;推迟Alarm唤起时间、限制CPU调用、限制网络请求等&#xff09;&#xff0c;需终端手机厂商为该App添加这个白名单。 Android developer 针对低电耗模式和应用待机模式进行优化&…

Android 8.1 Doze模式分析(二)——Light Doze模式

概述 LightDoze表示轻度doze模式&#xff0c;如果设备处于未充电且屏幕关闭状态&#xff0c;但未处于静止状态时&#xff0c;就会进入Light Doze模式&#xff0c;在LightDoze模式中&#xff0c;会定期进行维护&#xff0c;这种维护会持续N分钟&#xff0c;在维护状态(maintena…

Doze模式时序调研

Doze模式 机型 Light idle Deep idle 时序 定制白名单 AppStandby BLE Scanning管控 华为P20 Pro 开启 64.5分钟进入deep idle 有 开启 禁止BLE scanning OPPO F11 Pro 开启 30分钟进入deep idle 有 开启 允许BLE scanning 小米 MI 8 Pro 开启 64.5分钟进入…

Android7.0 Doze模式分析(一)Doze介绍 DeviceIdleController

参考&#xff1a;http://blog.csdn.net/gaugamela/article/details/52981984 在Android M中&#xff0c;Google就引入了Doze模式。它定义了一种全新的、低能耗的状态。 在该状态&#xff0c;后台只有部分任务被允许运行&#xff0c;其它任务都被强制停止。 在之前的博客中分…

android 7.0低电耗Doze模式

从 Android 6.0&#xff08;API 级别 23&#xff09;开始&#xff0c;Android 引入了两个省电功能&#xff0c;可通过管理应用在设备未连接至电源时的行为方式为用户延长电池寿命。 低电耗(Doze)模式通过在设备长时间处于闲置状态时推迟应用的后台 CPU 和网络 Activity 来减少电…

Android O Doze模式的状态

现象 以下是BugReport日志 日志 STATE_ACTIVE 2,006: 11-17 10:24:59.876137 900 900 I DeviceIdleController: updateChargingLocked: chargingtrue 2,007: 11-17 10:24:59.876244 900 900 I DeviceIdleController: becomeActiveLocked, reason charging 2,25…