2011-11-03 5 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(f.k.a. "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

I postgresqlでこれを行うことができることを覚えていて、それを愛しました。 SQL 2012に追加されました。 –

関連する問題