如何在 SQL 服务器抛出中创建串联消息?
How can I create a concatenated message in a SQL Server throw?
我有这个代码:
IF (@CurrentResult != 'N' AND @CurrentResult != 'F')
THROW 50002, 'Question should be unmarked or incorrect', 1
有人可以向我解释一下如何在我抛出的错误消息中提供@CurrentResult 吗?
我希望消息显示为:
Question result is 'X'. It should be unmarked or incorrect?
其中 X 是@CurrentResult 的值。
编辑以首先反映设置消息变量:
DECLARE @Message varchar(100)
SET @Message = 'Question result is ' + cast(@CurrentResult, varchar(100)) + '. It should be unmarked or incorrect.'
IF (@CurrentResult != 'N' AND @CurrentResult != 'F')
THROW 50002,@Message,1
转换为 varchar 将保留 @CurrentResult
的文本值。相应地设置大小。
您不能在 THROW
语句中连接字符串。
您需要做的是创建一个变量并将整个错误消息分配给它:
DECLARE @Message NVARCHAR(100)
SET @Message = N'Question result is ''' + @CurrentResult + '''. It should be unmarked or incorrect?'
IF (@CurrentResult != 'N' AND @CurrentResult != 'F')
THROW 50002, @Message, 1
我有这个代码:
IF (@CurrentResult != 'N' AND @CurrentResult != 'F')
THROW 50002, 'Question should be unmarked or incorrect', 1
有人可以向我解释一下如何在我抛出的错误消息中提供@CurrentResult 吗?
我希望消息显示为:
Question result is 'X'. It should be unmarked or incorrect?
其中 X 是@CurrentResult 的值。
编辑以首先反映设置消息变量:
DECLARE @Message varchar(100)
SET @Message = 'Question result is ' + cast(@CurrentResult, varchar(100)) + '. It should be unmarked or incorrect.'
IF (@CurrentResult != 'N' AND @CurrentResult != 'F')
THROW 50002,@Message,1
转换为 varchar 将保留 @CurrentResult
的文本值。相应地设置大小。
您不能在 THROW
语句中连接字符串。
您需要做的是创建一个变量并将整个错误消息分配给它:
DECLARE @Message NVARCHAR(100)
SET @Message = N'Question result is ''' + @CurrentResult + '''. It should be unmarked or incorrect?'
IF (@CurrentResult != 'N' AND @CurrentResult != 'F')
THROW 50002, @Message, 1