我有一个存储过程,它根据存储过程中的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
语句。