1

サーバー A にストアド プロシージャがあります。サーバー B はリンク サーバーであり、接続は良好で、アクセス許可はすべて良好です。サーバーAのprocの最後の行は、EXECを使用してサーバーBのprocを呼び出します。可能であれば、サーバーBで呼び出されるprocの戻り値であるサーバーAのprocから値を返すことができるようにしたいと思います. これは可能ですか? コードは次のようになります。

proc foo(outputFromB INT OUTPUT)
...
EXEC [someserver].[db].[dbo].[ProcB]
@inputA
@inputB
@outputA

outputFromB の proc foo から出力 A の値が返されるようにしたいと考えています。どんな助けでも大歓迎です。

4

1 に答える 1

0

まず、実パラメータに対応するパラメータがまたはキーワードで宣言されていることを確認します。ProcB@outputAOUTOUTPUT

CREATE PROCEDURE dbo.ProcB (
  other parameters,
  @outputParam type OUTPUT
)
AS
…

プロシージャを呼び出すとき、新しい値が実際に割り当てられるようにするには、同じキーワードをパラメータの後に追加する必要があります。

proc foo(@outputFromB INT OUTPUT)
...
EXEC [someserver].[db].[dbo].[ProcB]
@inputA
@inputB
@outputFromB OUTPUT

fooの仮パラメータがコマンド呼び出しで直接使用されていることもわかりますProcB。これは、返された値を に割り当てる前に何らかの方法で処理する必要がない場合は、まったく問題ありません@outputFromB

それだけです。OUTPUTお電話の際も忘れずにお申し付けくださいfoo

于 2012-06-26T07:08:27.390 に答える