0

ストアド プロシージャに最後に挿入されたタプルの ID を引数として別のストアド プロシージャに渡したい。

4 つのコード スニペットを次に示します。最初の 2 つのスニペットは正しく機能します。

declare @s bigint
select @s = scope_identity()
exec some_stored_proc @s

exec some_stored_proc scope_identity

ただし、これらのスニペットは両方とも、クエリがエラーで完了します。

declare @s bigint
select @s = scope_identity

exec some_stored_proc scope_identity()

カッコが大騒ぎする理由がわかりません!どのようscope_identity()に異なる構文を持つことができますか?

4

1 に答える 1

1

異なる構文はありません

その関数と関数はによって実行されるべきです()

SCOPE_IDENTITY()

declare @s bigint
set @s = scope_identity()
exec some_stored_proc @s

動作するはずです。

編集

exec XXX「計算値」ではなく「準備値」を取得する必要があります。これがとして送信できない理由です。datetimegetDate()

編集2

あなたのサンプルによると-()なしでgetDateをspに送信できます。

ここに画像の説明を入力

それは動作しません。@param を通過する必要があります

于 2012-04-23T11:57:26.463 に答える