0

アプリケーションから server1 でストアド プロシージャを実行しています。ストアド プロシージャは一連の処理を実行し、server2 のテーブルにプロシージャの結果を入力します。

これを達成するためにリンクサーバーを使用しています。

ストアド プロシージャが完了すると、アプリケーションの実行が続行され、ストアド プロシージャからの結果を操作しようとします。

私の問題は、ストアド プロシージャの結果がまだテーブルに完全に挿入されていないため、テーブルの操作が失敗することです。

だから私の質問はです。リンクサーバーへの挿入が同期的に行われるようにすることは可能ですか? リンクサーバー上のテーブルが実際に完了するまで、ストアドプロシージャが返されないようにしたいと思います。

4

2 に答える 2

0

最初のプロシージャの出力パラメータを使用できます。2 番目のサーバーでテーブルが作成されると、出力パラメーター値がアプリケーションに返され、操作の準備ができていることが示されます。

これが難しい場合は、ストア プロシージャの別の分離レベルを設定してみてください。

http://msdn.microsoft.com/en-us/library/ms173763.aspx

于 2012-09-07T07:28:49.417 に答える
0

この奇妙な動作の理由がわかりました。同じテーブル内のデータがリンク サーバーに書き込まれる前に、一時的な mem テーブルで選択を行った、デバッグ中に追加されたストアド プロシージャのコード行がありました。

select ステートメントが実行されると、制御がアプリケーションに戻され、同時にストアド プロシージャが実行され続けました。ストアド プロシージャは最初から同期的に実行されていたと思います。

于 2012-09-07T08:06:45.543 に答える