如果不满足条件,则引发错误,如果没有,则运行程序

时间:2016-10-21 20:20:32

标签: sql-server tsql

如果不满足条件,我需要显示错误。 @variable1@variable2都只占用少量值。

这是我的代码:

ALTER PROC Test
    (@Variable1 AS INT,
     @Variable2 AS CHAR(2))
AS
    DECLARE @err_message nvarchar(max)

    IF @Variable1 <> 1 OR @Variable1 <> 2 OR @Variable1 <> 3
        SET @err_message = 'Not available'

    BEGIN
        RAISEERROR (@err_message,16,1)
    END

    IF @Variable2 <> 'IT'
        SET @err_message = 'Not IT'

    BEGIN
        RAISEERROR (@err_message,16,1)
    END

    RUN PROCEDURE

我收到了RAISEERROR

的错误消息
  

语法不正确。期待谈话

并使用第二个IF语句。

1 个答案:

答案 0 :(得分:1)

使用NOT IN更简单正确:

IF @Variable1 NOT IN (1, 2, 3)
    BEGIN
        SET @err_message = 'Not available'
        RAISERROR(@err_message, 16, 1)
    END;


IF @Variable2 <> 'IT'
    BEGIN
        SET @err_message = 'Not IT'
        RAISERROR(@err_message, 16, 1)
    END;

您的第一个条件总会产生错误。