一个 raiserrror 中很少有错误信息

Few errormessager in one raiserrror

我有以下问题,我需要显示一些来自 if 语句的错误消息。例如,如果满足 3 个条件中的 2 个,我需要 raisevent 显示 2 条消息。

IF @var1 > 1
BEGIN 
    SET @err = 'ASD'
END

IF @var1 <4
BEGIN 
    SET @err = 'ZXC'
END

IF @var = 3
BEGIN
   SET @err = 'QWE'
END

对于@var1 = 2

我需要在一个 raiserror 中显示 2 个错误消息。我怎样才能做到这一点?

您的代码在 BEGIN CATCH 块中吗? 如何引发严重性小于 11 的错误:

IF @var1 > 1
BEGIN 
    SET @err = 'ASD';
    RAISEERROR(@err, <your_severity>, <state>)
END

IF @var1 <4
BEGIN 
    SET @err = 'ZXC'
    RAISEERROR(@err, <your_severity>, <state>)
END

IF @var = 3
BEGIN
   SET @err = 'QWE'
   RAISEERROR(@err, <your_severity>, <state>)
END

或结合message_erorr:

IF @var1 > 1
BEGIN 
    SET @err += ' ASD'; 
END

IF @var1 <4
BEGIN 
    SET @err += ' ZXC'
END

IF @var = 3
BEGIN
   SET @err += ' QWE'
END

RAISEERROR(@err, <your_severity>, <state>)