こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQLServerでOracleシーケンスのような機構を実現するには

いつもお世話になります。

SQLServerで自動採番される仕組みで何かいい方法がないかどうか悩んでいます。

主キーとなる項目に自動採番された値を、アプリケーションでセットした上で、DBに追加する仕組みを考えています。
OracleではSequenceのnextvalなどを使用すれば、番号を自動採番したものを取得することが可能ですが、
SQLServerでこのような仕組みを実現するために何か良い方法はありませんでしょうか?
(追加先のDBはSQLServerではなく、自動採番等の機能も無いため、追加する前にアプリケーションでセットする必要がある。)

今までOracleしか使用したことが無く、SQLServerは初めてなので、ご教授頂きたく投稿しました。
よろしくお願いします。

SQLServerは2005を使用しています。

投稿日時 - 2008-07-29 23:19:47

QNo.4213938

すぐに回答ほしいです

質問者が選んだベストアンサー

こういうやり方なら実装したことがあります。

CREATE TABLE t_val([SEQ][int] IDENTITY,[FLG][int])

CREATE PROCEDURE ap_nextval
AS
BEGIN
SET NOCOUNT ON
INSERT INTO t_val(FLG) VALUES (1)
RETURN SCOPE_IDENTITY()
END

DECLARE @nextval int
EXEC @nextval=ap_nextval

アプリケーションだとストアドの最終行はSELECT SCOPE_IDENTITY()の方が取りやすいかもしれません

投稿日時 - 2008-07-30 00:08:55

このQ&Aは役に立ちましたか?

11人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問