2011-11-03 116 views
6

我正在使用SQL Server 2008 Express Edition。SQL Server 2008 Express Edition - 如何創建序列

我想創建與此代碼序列:

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

和誤差是

消息343,級別15,狀態1,行1
未知對象類型 'SEQUENCE' 用在CREATE,DROP或ALTER語句中。

任何人都可以幫助我嗎?

最好的問候!

回答

9

SQL Server 2008尚未知道序列 - 這將在SQL Server 2012中引入(例如,「Denali」)。

的幾乎相同的結果,使用INT IDENTITY柱代替:

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

IDENTITY列由SQL Server自動在插入新行插入表的時間填滿。 SQL Server確保它單調增加,從1開始,增加1(如果需要,可以將它們設置爲不同的值)。

基本上,當將一行插入這樣的表格時,您必須而不是指定要列表中插入值的列的IDENTITY列 - SQL Server會自動爲您執行此操作。

0

序列對象是新與SQL迪納利,SQL Server 2012的 下面是一些示例代碼http://www.kodyaz.com/sql-server-2012/number-of-sequences-in-sql-server-2012-using-sequence-objects.aspx的序列中的SQL對象2012

你可以找到SQL Server 2008的位置序列表implemantation:http://www.kodyaz.com/t-sql/sql-server-instead-of-trigger-with-sequence-table.aspx

+0

我記得能夠在postgresql中做到這一點...並喜歡它。很高興它被添加到SQL 2012! –

相關問題