博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Server 2012 开发新功能 序列对象(Sequence)(转)
阅读量:6374 次
发布时间:2019-06-23

本文共 1256 字,大约阅读时间需要 4 分钟。

转载链接: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 
] [ INCREMENT BY
] [ { MINVALUE [
] } | { NO MINVALUE } ] [ { MAXVALUE [
] } | { NO MAXVALUE } ] [ CYCLE | { NO CYCLE } ] [ { CACHE [
] } | { NO CACHE } ] [ ; ]

start with 设置起始值

increment by 设置增长间隔

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

cycle设置是否循环

cache指定缓存的设置

你可能感兴趣的文章
cocos2dx下的A星算法
查看>>
Javascript登录页面“记住密码”实现
查看>>
RabbitMQ的应用场景以及基本原理介绍(转)
查看>>
Nginx:413 Request Entity Too Large解决
查看>>
飘雪代码2枚
查看>>
linux crontab详解
查看>>
HTTP 请求头 WIKI 地址
查看>>
ASP.NET CORE中使用Cookie身份认证
查看>>
Dynamics CRM 2016 Web API 消息列表
查看>>
项目微管理3 - 面试
查看>>
RecyclerView的点击事件
查看>>
友元函数和友元类
查看>>
SpringMVC中CRUD实例
查看>>
java-jmx使用
查看>>
Win8Metro(C#)数字图像处理--2.15图像霓虹效果
查看>>
Expo大作战(十七)--expo结合哨兵(sentry)进行错误异常记录
查看>>
vue.js入门学习
查看>>
第8件事 3步打造产品的独特气质
查看>>
debug-stripped.ap_' specified for property 'resourceFile' does not exist
查看>>
利用MapReduce计算平均数
查看>>