系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > 数据库 > MsSql > 详细页面

Sql:SQL Server CREATE SEQUENCE statement

时间:2020-08-09来源:www.pcxitongcheng.com作者:电脑系统城

Sql:SQL Server CREATE SEQUENCE statement

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
---自动增长跳至1001  https://stackoverflow.com/questions/17587094/identity-column-value-suddenly-jumps-to-1001-in-sql-server
--1. 使用序列 (Sequence) https://docs.microsoft.com/zh-cn/sql/t-sql/statements/create-sequence-transact-sql?view=sql-server-ver15
--2. 为SQL Server 注册启动参数 -t272
IF EXISTS(SELECT FROM sys.sequences WHERE name = N'Id_Sequence')
    DROP SEQUENCE Id_Sequence;
GO
CREATE SEQUENCE Id_Sequence
    AS INT
    START WITH --从1开始计数
    INCREMENT BY -- 每次加几个
    MINVALUE 0  --最小值
    NO MAXVALUE --没有最大值
   CACHE 10  --设置缓存cache个序列
GO
/*
START WITH <constant>
序列对象返回的第一个值。 START 值必须小于或等于序列对象的最大值并大于或等于其最小值。 新序列对象的默认起始值是升序序列对象的最小值和降序序列对象的最大值。
INCREMENT BY <constant>
每次调用 NEXT VALUE FOR 函数时序列对象值递增(如果为负数,则为递减)的值。 如果增量是负值,则序列对象为降序,否则为升序。 增量不能为 0。 新序列对象的默认增量为 1。
[ MINVALUE <constant> | NO MINVALUE ]
指定序列对象的边界。 一个新序列对象的默认最小值是该序列对象的数据类型的最小值。 对于 tinyint 数据类型,此值为零,对于所有其他数据类型则为负数。
[ MAXVALUE <constant> | NO MAXVALUE
指定序列对象的边界。 一个新序列对象的默认最大值是该序列对象的数据类型的最大值。
[ CYCLE | NO CYCLE ]
此属性指定当超过序列对象的最小值或最大值时,序列对象是应从最小值(对于降序序列对象,则为最大值)重新开始,还是应引发异常。 新序列对象的默认循环选项是 NO CYCLE。
[ CACHE [<constant> ] | NO CACHE ]
通过最大限度地减少生成序列编号所需的磁盘 IO 数,可以提高使用序列对象的应用程序的性能。 默认值为 CACHE。
例如,如果选择的缓存大小为 50,SQL Server 并不会缓存 50 个单个值。 它只是缓存当前值和缓存中保留的值数。 这意味着,存储缓存所需的内存量始终为序列对象的数据类型的两个实例。
*/
DROP table DuInvoiceReceipts
go
 
 
CREATE TABLE DuInvoiceReceipts
(
    Duid   INT PRIMARY KEY
        DEFAULT (NEXT VALUE FOR Id_Sequence),
    orderId     INT NOT NULL,
    isLate      BIT NOT NULL,
    receiptDate Datetime NOT NULL,
    note NVARCHAR(100)
);
go
 
insert into DuInvoiceReceipts(orderId,isLate,receiptDate,note)
SELECT 2,1,getdate(),N'geovindu' union
SELECT 3,1,getdate(),N'涂聚文' union
SELECT 4,1,getdate(),N'geovin' union
SELECT 5,1,getdate(),N'du' union
SELECT 6,0,getdate(),N'涂年生' union
SELECT 7,1,getdate(),N'江西' union
SELECT 8,1,getdate(),N'塗聚文(Geovin Du)' union
SELECT 9,1,getdate(),N'井岗山'
go
 
select from DuInvoiceReceipts
go
 
--
SELECT FROM sys.sequences WHERE name 'Id_Sequence' 
go
--查询一下个值
SELECT NEXT VALUE FOR Id_Sequence
go

  


哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)成功.---Geovin Du(涂聚文)
分享到:

相关信息

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载