在SQL Server 2012中使用序列

时间:2012-11-04 05:16:29

标签: sql-server sql-server-2012

我有SQL Server 2012,我想知道序列的用法是什么。我找一个样本来解释序列的用法。

修改

我知道在数据库中创建和使用Sequence。我想知道使用Sequence的实际场景。

2 个答案:

答案 0 :(得分:5)

CREATE SEQUENCE dbo.OrderIDs
    AS INT
    MINVALUE 1
    NO MAXVALUE
    START WITH 1;

SELECT NextOrderID = NEXT VALUE FOR dbo.OrderIDs
UNION ALL     SELECT NEXT VALUE FOR dbo.OrderIDs
UNION ALL     SELECT NEXT VALUE FOR dbo.OrderIDs;

结果:

NextOrderID
-----------
1
2
3

有关原始来源和更多示例,请参阅here。该页面引用SQL Server Denali,它是SQL 2012的beta版,但语法仍然相同。

答案 1 :(得分:2)

我利用SEQUENCE命令的方法之一是ASP / C#detailsview页面中的参考号(作为示例)。我使用detailsview将请求输入数据库,SEQUENCE命令用作每个请求的请求/票号。我将初始序列命令设置为以特定数字开头,并为每个请求递增1。

如果我在gridview中显示这些请求,我会显示SEQUENCE参考编号,但不会使它们可编辑。当记录与数据库中的其他字段类似时,它非常适用于参考号。当客户对给定数据库中的特定条目有疑问时,它也非常适合客户。这样,无论其他信息是否相同,每个条目都有一个唯一的编号。

以下是我通常利用SEQUENCE命令的方法:

CREATE SEQUENCE blah.deblah
     START WITH 1
     INCREMENT BY 1
     NO CYCLE
     NO CACHE

简而言之,我在#1开始我的序列(你可以选择你想要开始的任何数字),它以1为增量向上计数。当序列号达到系统最大值时,我不会循环它。