7

我有SQL Server 2012并且我想知道序列的用途是什么。我寻找一个示例来解释序列的用法。

编辑

我知道在数据库中创建和使用序列。我想知道使用序列的实际场景是什么。

4

2 回答 2

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

有关原始来源和更多示例,请参见此处。该页面指的是 SQL Server Denali,它是 SQL 2012 的测试版,但语法仍然相同。

于 2012-11-04T06:05:06.000 回答
2

我利用 SEQUENCE 命令的方法之一是在 ASP/C# 详细信息视图页面中获取参考编号(例如)。我使用 detailsview 将请求输入到数据库中,并且 SEQUENCE 命令用作每个请求的请求/票证号。我将初始序列命令设置为以特定数字开头,并为每个请求增加 1。

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

以下是我通常如何利用 SEQUENCE 命令:

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

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

于 2013-11-01T21:53:08.887 回答