sql - 您将如何在 Microsoft SQL Server 中实现序列?

标签 sql sql-server database sequences

有没有人有在 SQL Server 中实现类似序列的好方法?

有时您只是不想使用 GUID,除了事实上它们非常丑陋之外。也许你想要的序列不是数字?此外,插入一行然后询问数据库的数字是多少,这看起来很老套。

最佳答案

Sql Server 2012 引入了SEQUENCE objects ,它允许您生成与任何表无关的连续数值。

创建它们很容易:

CREATE SEQUENCE Schema.SequenceName
AS int
INCREMENT BY 1 ;

插入前使用它们的例子:

DECLARE @NextID int ;
SET @NextID = NEXT VALUE FOR Schema.SequenceName;
-- Some work happens
INSERT Schema.Orders (OrderID, Name, Qty)
  VALUES (@NextID, 'Rim', 2) ;

请参阅我的博客以深入了解如何使用序列:

http://sqljunkieshare.com/2011/12/11/sequences-in-sql-server-2012-implementingmanaging-performance/

关于sql - 您将如何在 Microsoft SQL Server 中实现序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/282943/

相关文章:

sql - 如何将 Sql Server 2008 DateTimeOffset 转换为 DateTime

mysql - SQL - 查询每个酒店的不同成人/ child 的多个房间

MySQL 嵌套选择 : am I able to use any data from outer select?

sql - 将多行中的值求和到一行中

sql - 如何在 Microsoft Access 查询中设置日期格式

mysql - Rails 应用程序中 SCORM 的数据模型

sql - 如何在带有 ADO 的 excel 中使用 sql/VBA 创建表

sql-server - SQL Server : how to populate sparse data with the rest of zero values?

使用 ALL 关键字的 mySQL 查询

database - Postgres维护的正确顺序