SQL Server 2008 Express Edition - 如何创建序列

时间:2011-11-03 17:41:03

标签: sql sql-server sql-server-2008-express

我正在使用SQL Server 2008 Express Edition。

我想用这段代码创建一个序列:

CREATE SEQUENCE Postoffice_seq
    AS bigint
    START WITH 1
    INCREMENT BY 1
    MINVALUE 0
    NO MAXVALUE;

,错误是

  

Msg 343,Level 15,State 1,Line 1
  在CREATE,DROP或ALTER语句中使用的未知对象类型“SEQUENCE”。

任何人都可以帮助我吗?

最诚挚的问候!

2 个答案:

答案 0 :(得分:10)

SQL Server 2008还不知道序列 - 这将在SQL Server 2012中引入(f.k.a。“Denali”)。

对于几乎相同的结果,请改为使用INT IDENTITY列:

CREATE TABLE dbo.YourTable
  (YourID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
    ....
  )

在您向表中插入新行时,SQL Server会自动填充IDENTITY列。 SQL Server确保它单调递增,从1开始增加1(如果需要,可以将它们设置为不同的值)。

基本上,当在这样的表中插入行时,您必须在列表中指定IDENTITY列以插入值 - SQL Server将自动为您执行此操作。

答案 1 :(得分:0)

SQL Denali,SQL Server 2012中的序列对象是新的 以下是SQL 2012中序列对象的一些示例代码http://www.kodyaz.com/sql-server-2012/number-of-sequences-in-sql-server-2012-using-sequence-objects.aspx

您可以在此处找到SQL Server 2008的序列表实现:http://www.kodyaz.com/t-sql/sql-server-instead-of-trigger-with-sequence-table.aspx