无论条件如何,始终在存储过程中调用EXECUTE语句

时间:2017-06-07 22:54:45

标签: sql sql-server tsql stored-procedures

我有一个存储过程,它根据存储过程中的IF ELSE语句打印出正确的语句。但是,当我使用EXECUTE语句运行它时,我想在条件为真时调用它,无论EXECUTE条件是否为真,它都会调用IF语句或不。这是我正在尝试做的一个例子。

WHILE @count > 0
BEGIN
    SET @userID = (SELECT userId
                   FROM #roleMembers
                   WHERE @count = User_Key);

    IF NOT EXISTS (SELECT p.UserID
                   FROM #Supervisors AS s
                   INNER JOIN table_vw AS p ON p.ID = s.SupervisorID
                   WHERE p.ID = @userID)
    BEGIN
        EXECUTE dbo.myStoredProc;
    END
    ELSE
    BEGIN
        PRINT 'Kept User: ' + @userID
    END

    SELECT @count = @count - 1;
END

出于某种原因,当我使用这样的查询编写时,无论EXECUTE语句中正在评估的条件如何,始终都会调用IF ELSE语句。

0 个答案:

没有答案