1

SQLServerで一意のシーケンスを作成する方法はありますか

select <sequence>.nextval from dual

一意の番号を作成するOracleの上記のコードがあり、その番号を他の人が使用することはできません。

同じように、SQLServerで一意のシーケンス番号を作成するにはどうすればよいですか????

誰かがこれで私を助けてくれます

4

2 に答える 2

1

シーケンスは SQL Server 2012 に追加されていますが、これはまだ完全にはリリースされていません。事前に試用したい場合は、製品のリリース候補が含まれています。

シーケンスが 1 つのテーブルでのみ使用される場合は、ID 列機能を使用できます。これにより、開始番号とレコードごとに追加される値を指定できます。

多数のテーブルで使用できるシーケンスを探している場合は、ID フィールドの単一の列を持つ専用のテーブルを SQL サーバー内に作成する必要があります。.nextval が必要な場合はいつでも挿入しますテーブルに行を追加して、新しい番号を取得します。テーブルはシーケンスのように機能します。テーブルは時間の経過とともにいっぱいになります。テーブル内にレコードを保持する必要はありません。ID は現在の値を格納し、システム テーブルの次の値を取得するためにインクリメントします。

于 2012-01-23T09:44:39.150 に答える
0

今後の SQL Server 2012 のみが、SQL 標準適合シーケンス オブジェクトをサポートします。:-( SQL Server の現在のバージョン (2008 R2 以下) では、次のように ID 制約を持つ列を使用する必要があります。

CREATE TABLE t1
(
   id       int identity(1,1),
   somecol  varchar(50)
);

これにより、id 列に 1 から始まり、1 ずつ増分する値が生成されます。

于 2012-01-23T09:40:05.287 に答える