Raiseerror和Concat的消息

时间:2008-10-22 15:13:37

标签: sql-server tsql raiseerror

我想做这样的事情

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中。

2 个答案:

答案 0 :(得分:16)

RAISERROR中的错误消息实际上与C中的printf函数类似,因此假设您的参数是您需要使用的整数类型:

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

查看BOL了解详情和其他选项

答案 1 :(得分:0)

我经常使用raiserror。我们有一些存储过程每天晚上从.Net应用程序调用进行批处理,而.Net应用程序希望以这种方式记录过程输出。我不知道为什么,但我通常必须在调用raiserror之前构建字符串。