2013-10-04 90 views
0

我編寫了一個SQL查詢來對IF語句中的列進行更新。該查詢使用if語句來確定該列是否符合正確條件,如果符合,則繼續更新該列。SQL Server 2008:我試圖在if語句中執行更新

指令(S)成功完成:

不知道我在做什麼錯,因爲它與執行。

但是,當我看着我的表中的更新尚未應用...

我還是新來的SQL。

DECLARE @Status VARCHAR(50) 

IF @Status = 'Active Debtor' 
BEGIN 
    UPDATE Table1 
    SET Col1 = 'Pre-Legal' 
    FROM Table1 
    INNER JOIN Table2 ON CM_IDX = DB_IDX 
    WHERE TypeID = 1 
    AND Col1 = @Status 
END 
+0

如果這是你的整個代碼,那麼'@Status'永遠不會被分配一個值 - 你期望它如何獲得一個非NULL值? –

+0

這意味着你沒有什麼可更新的,這就是發生了什麼嘗試檢查你的where子句,如果沒有行更新,更新將成功執行命令,如果它更新了一行,它將顯示有多少行受到影響 – user2705620

回答

0

你不分配一個值,首先你DECLARE @Status VARCHAR(50) 它應該有進入IF

IF @Status = 'Active Debtor' 

上面的代碼返回,因爲@Status的空值的錯誤的值 使其退出程序成功返回Commands,更新的行更新顯示會影響多少行。