Search code examples
t-sqlraiserror

Few errormessager in one raiserrror


I have following problem, I need to display few error messages from my if statements. If, for example, 2 of 3 conditions are met I need to raisevent display 2 messages.

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

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

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

For @var1 = 2

I need to display 2 errormessages in one raiserror. How can I do this?


Solution

  • Is your code inside BEGIN CACTH block? How about raising error like this with severity less than 11 that:

    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
    

    Or combining 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>)