5

次のようなストアドプロシージャがあるとします。

begin try drop procedure test_print end try begin catch end catch;
go
create procedure test_print
as
begin
print 'Hello'
print 'World';
end
go

exec test_print

ストアドプロシージャtest_printで印刷メッセージをキャプチャして変数に保存するにはどうすればよいですか?

ありがとう。

4

1 に答える 1

6

T-SQLではできません。情報出力は常にクライアントに送信されます。したがって、それをキャプチャするにはクライアントである必要があります。簡単な回避策は、SQLCLRからプロシージャを呼び出すことです。次に、InfoMessageイベントを接続して、calee出力を取得できます。

于 2013-03-08T11:17:23.367 に答える