SQL Server 2012 开发新功能 序列对象(Sequence)(转)

转载链接:http://www.cnblogs.com/zhangyoushugz/archive/2012/11/09/2762720.html

众所周知,在之前的sqlserver版本中,一般采用GUID或者identity来作为标示符,但是identity是一个表对象,只能保证在一张表里面的序列,当我们遇到以下情况时,

表1

ID 订单类型 价格
1 火车票 200
4 飞机票 2000
5 船票 600

表2

ID 订单类型 价格
2 酒店 400
3 公园门票 170
6 租车费用 300

如上图,我们需要在多表之间,实现ID的一致性,在sqlserver里面就会有一定的麻烦,通常我们会使用额外使用一张temp表来映射这些ID的关系然后再从中取序列来完成。

sequence在oracle中其实很早就存在了,sqlserver 2012的sequence功能和那个相似,是一个基于schema的对象,所以可以被多表调用。

sequence语法如下:

  1. CREATE SEQUENCE [schema_name . ] sequence_name
  2. [ AS [ built_in_integer_type | user-defined_integer_type ] ]
  3. [ START WITH <constant> ]
  4. [ INCREMENT BY <constant> ]
  5. [ { MINVALUE [ <constant> ] } | { NO MINVALUE } ]
  6. [ { MAXVALUE [ <constant> ] } | { NO MAXVALUE } ]
  7. [ CYCLE | { NO CYCLE } ]
  8. [ { CACHE [ <constant> ] } | { NO CACHE } ]
  9. [ ; ]
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 } ]
    [ ; ]

start with 设置起始值

increment by 设置增长间隔

min和max分别设置最小和最大值

cycle设置是否循环

cache指定缓存的设置

时间: 2024-12-10 23:51:50

SQL Server 2012 开发新功能 序列对象(Sequence)(转)的相关文章

SQL Server 2012 T-SQL 新特性

原文:SQL Server 2012 T-SQL 新特性 序列 Sequence SQL Server 现在将序列当成一个对象来实现,创建一个序列的例子语法如下: CREATE SEQUENCE DemoSequence START WITH 1 INCREMENT BY 1; 使用序列的方法如下所表达的: SELECT VALUE FOR DemoSequence 序列与以前的种子列(identity)的区别很明显,种子列只限于当前列,而序列是一个对象层面的实现,则可以在多个表之间共享.这一点

SQL Server 2012 各版本功能比较

转载来自 <一棵树-博客园>  地址:http://www.cnblogs.com/atree/p/SQL_Server_2012_Enterprise_Standard.html SQL Server 2012 各版本功能比较 有关不同版本的 SQL Server 2012 所支持的功能的详细信息. 功能名称 Enterprise 商业智能 Standard Web Express with Advanced Services Express with Tools Express 单个实例使

Windows Server 2012 R2 新功能之共用VHDX虚拟磁盘

在Windows Server 2012 R2中有一项新的功能,这个功能的好处是可以在两个系统中同时使用一个VHDX虚拟磁盘.下面我们就在测试一下. 1.在一台服务器上打开磁盘管理点击"操作"--"创建VHD" 2.选择对应的虚拟磁盘存放的位置,这里我们将它存放在共享上. 3.这里可以配置对应的磁盘大小,磁盘类型等,点击"确定" 4.这时候我们对这个磁盘进行联机.初始化.格式化等操作. 5.然后我们在另外一台服务器上点击"操作"

Sql Server 2012 的新分页方法分析(offset and fetch) - 转载

最近在分析 Sql Server 2012 中 offset and fetch 的新特性,发现 offset and fetch 无论语法的简洁还是功能的强大,都是相当相当不错的 其中 offset and fetch 最重要的新特性是 用来 分页,既然要分析 分页,就肯定要和之前的分页方式来比较了,特别是 Row_Number() 了,在比较过程中,发现了蛮多,不过最重要的,通过比较本质,得出了优劣,也和大家一起分享下. 准备工作,建立测试表:Article_Detail,主要是用来存放一些

Win8.1 安装SQL Server 2012 启用Windows 功能NetFx3时出错

如题,截图如下: 这个错误出现了,我直接点确定后,继续安装,最后安装失败. 这个错误其实是.net framework 3.5没有安装,只好下载.net framework 3.5安装:其实在控制面板的"添加功能"里也可以安装. 关键是SQL Server安装失败,卸载SQL Server 不完全,还要重装系统,杯具啊!我没理解网上说的意思,什么安装SQL Server时出现上面的错误,然后通过命令行安装netfx3,重启系统:那这个"确定"不需要点吗?重启完系统再

SQL Server 2012 AlwaysOn集群配置指南

1. AlwaysOn介绍 AlwaysOn是SQL Server 2012提供的全新综合.灵活.高效经济的高可用性和灾难恢复解决方案.它整合了镜像和群集的功能,基于OS 故障转移群集(Windows Server FailOver Cluster),通过在同一个WSFC的不同Node上,安装独立的SQL Server实例,定义AlwaysOn Group,一个数据库最多可以部署4个镜像.当热备机出现故障时,可以手工或自动实现故障转移,交换主.辅数据库的角色. AlwaysOn的亮点在于镜像可读

SQL Server 2012中的AlwaysOn尝试

简介 SQL Server2012中新增的AlwaysOn是一个新增高可用性解决方案.在AlwaysOn之前,SQL Server已经有的高可用性和数据恢复方案,比如数据库镜像,日志传送和故障转移集群.都有其自身的局限性.而AlwaysOn作为微软新推出的解决方案,提取了数据库镜像和故障转移集群的优点.本文旨在通过实现一个AlwaysOn的实例来展现AlwaysOn. 配置AlwaysOn 虽然AlwaysOn相比较之前版本的故障转移集群而言,步骤已经简化了许多.但配置AlwaysOn依然是一件

SQL server 2012

MICROSOFT SQL SERVER 2012 企业核心版激活码序列号: FH666-Y346V-7XFQ3-V69JM-RHW28MICROSOFT SQL SERVER 2012 商业智能版激活码序列号: HRV7T-DVTM4-V6XG8-P36T4-MRYT6MICROSOFT SQL SERVER 2012 开发版激活码序列号: YQWTX-G8T4R-QW4XX-BVH62-GP68YMICROSOFT SQL SERVER 2012 企业服务器版/CAL版序列号: 748RB-

sql server 2012序列号

MICROSOFT SQL SERVER 2012 企业核心版激活码序列号: FH666-Y346V-7XFQ3-V69JM-RHW28 MICROSOFT SQL SERVER 2012 商业智能版激活码序列号: HRV7T-DVTM4-V6XG8-P36T4-MRYT6 MICROSOFT SQL SERVER 2012 开发版激活码序列号: YQWTX-G8T4R-QW4XX-BVH62-GP68Y MICROSOFT SQL SERVER 2012 企业服务器版/CAL版激活码序列号: