2011-08-30 90 views
5

我曾嘗試使用下面的查詢創建SQL Server 2008中的序列創建序列,不能在SQL Server 2008中

CREATE SEQUENCE serial START 100 

我得到了下面的語法錯誤,

消息102 ,Level 15,State 1,Line 1
'SEQUENCE'附近語法不正確。

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

回答

1

利用IDENTITY列將完成您的任務。

獲得MSDN上的全部細節:IDENTITY

11

你不能做到這一點。

SQL Server 2008不具有SEQUENCE的概念 - 這是a new feature in SQL Server 2012(MSDN documentation here)

通常情況下,你要爲你的表中的「自動增長」列 - 在這種情況下,使用IDENTITY列屬性改爲:

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

marc_s是如何寫的,SQL Server 2008不具備序列呢。 但是我們可以使用一些技巧來模仿序列行爲。有時我們需要爲某個表生成標識符而不插入任何數據。 或爲不同的表格生成ID。 在這種情況下,我使用這種結構。

創建一個表:

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

然後我用這個腳本生成編號:

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<Int32>(); 
      transaction.Rollback(); 
     } 

     return id; 
    }