4

私はこのようなことをしたいです

raiserror(concat('Error in case @isFishy =', @isFishy, ' @isSmarmy=', @isSmarmy, ' @isTasty = ', @isTasty), 10, 1)
--or
raiserror('Error in case @isFishy =' + @isFishy + ' @isSmarmy=' + @isSmarmy + ' @isTasty = ' + @isTasty, 10, 1)

しかし、それは機能していません。どうすればこれを達成できますか? 私は SQL Server 2005 を使用しています。

4

2 に答える 2

17

RAISERROR のエラー メッセージは、実際には C の printf 関数と同様の構文を持っているため、引数が整数型であると仮定すると、次のように使用する必要があります。

raiserror(N'Error in case @isFishy = %d @isSmarmy = %d @isTasty = %d',10,1,@isFishy,@isSmarmy,@isTasty)

詳細およびその他のオプションについては、BOLを確認してください

于 2008-10-22T16:02:41.483 に答える
0

私はraiserrorをよく使います。バッチ処理のために毎晩 .Net アプリから呼び出されるいくつかのストアド プロシージャがあり、.Net アプリはこの方法でプロシージャの出力をログに記録したいと考えています。理由はわかりませんが、通常は raiserror を呼び出す前に文字列を作成する必要があります。

于 2008-10-22T15:17:51.247 に答える