SQL基础:SQL Server中Sequence对象用法
时间:2024-02-14 10:20作者:下载吧人气:21
一、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
网友评论