2010-11-16 40 views
4

我有一個SP,我需要檢查,如果條件檢查,如果條件在存儲過程(SQL Server 2005中)

ALTER PROCEDURE [dbo].[spCheck] 
@strEmpname VARCHAR(50), 
@intReturn INT OUTPUT, 
@intWorkdID INT, 
@intEmpID INT 
AS 

BEGIN 
IF(@intWorkdID is not null and @intWorkdID != '') 
    BEGIN 
     IF EXISTS (SELECT * 
      FROM Employee 
     WHERE [Empname] = @strEmpname 
     AND WorkID = @intWorkdID 
      ) 
     SELECT @intReturn = '1' 
    END 
ELSE  
IF(@intEmpID is not null and @intEmpID != '') 
    BEGIN 
    IF EXISTS (SELECT * 
      FROM Employee 
     WHERE [Empname] = @strEmpname  
     AND PeopleID = @intEmpID 
      ) 
     SELECT @intReturn = '1' 
    END 
ELSE IF(@intEmpID is not null and @intEmpID != '') 
and(@intWorkdID is not null and @intWorkdID != '') 
    BEGIN 
    SELECT @intReturn = '0' 
    END 

END 

此基礎上WorkID,的EmpID
1條件2條件應該執行

如果這兩個條件不能我需要EXCUTE第三個條件

任何一個可以告訴語法,它

日anks

王子

回答

4

最好的辦法是,你可以使用

嘗試如下的內容:

SELECT @intReturn = 
    CASE 
      WHEN @intWorkdID IS NULL THEN 1 
      WHEN @intWorkdID<>'' THEN 1 
      WHEN @intEmpID IS NULL THEN 1 
      WHEN @intEmpID <>'' THEN 1 
      ELSE 0 
    END 

Case... When

2

int不能等於''

我不確定你在邏輯中要求什麼,但是當if不匹配時,它會運行else部分。之後,您可以按照腳本使用if -> else

相關問題