无法在SQL Server 2008中创建序列

我尝试使用以下查询在SQL Server 2008中创建序列,

CREATE SEQUENCE serial START 100 

我得到以下语法错误,

Msg 102,Level 15,State 1,Line 1
‘SEQUENCE’附近的语法不正确。

如何在SQL Server 2008中创建序列?

你不能这样做。

SQL Server 2008没有SEQUENCE的概念 – 这是SQL Server 2012中的一项新function (此处为MSDN文档) 。

通常,您希望为表创建“自动增加”列 – 在这种情况下,请使用IDENTITY列属性:

 CREATE TABLE dbo.YourTable ( TableID INT IDENTITY, ..... 

利用IDENTITY列将完成您的任务。

获取有关msdn: IDENTITY的完整详细信息

marc_s如何写,SQL Server 2008还没有序列。 但我们可以使用一些技巧来模仿序列行为。 有时我们需要为某些表生成标识符而不插入任何数据。 或者为不同的表生成ID。 在这种情况下,我使用这种结构。

创建一个表:

 create table IdSequence (id int identity(1,1)) 

然后我用这个脚本生成Id:

 begin tran insert into IdSequence output inserted.id default values rollback tran 

在我的应用程序中它看起来像:

  public Int32 GetNextId() { Int32 id = 0; using (var transaction = Session.BeginTransaction()) { id = Session.CreateSQLQuery("insert IdSequence output inserted.id default values").UniqueResult(); transaction.Rollback(); } return id; }