更新表變量時遇到問題。我已經聲明它,但是當我運行整個查詢我得到這個錯誤:「。」附近的語法錯誤。雖然更新變量表
Incorrect syntax near '.'.
,我似乎無法來解決這個問題...
UPDATE @List
SET nrID = CASE
WHEN nrID IS NULL
THEN t1.nrID
ELSE nrID
END
FROM @List
INNER JOIN table1 t1 ON @List.PNr = t1.PNr
INNER JOIN table2 t2 ON t1.n nrPNr = t2.nrPNr
WHERE t1.PNr = t2.PNr AND t2.Isactive = 0
試圖從這裏「SET @ List.nrID」取出表名,你已經告訴它,你要更新什麼表。 –
你給了table2「O」的別名,但你加入了「t2」的別名。代碼中沒有定義「t2」。 – JiggsJedi
此外,如果您將'nrID'加入到'table1' - 您的set/case語句是多餘的,'@List.nrID'將永遠不會爲空,因爲它是一個連接謂詞,並且null無法加入任何內容無法評估平等。換句話說,你內部連接到'table1'會立即刪除所有具有null @@.List.nrID'的行 - 所以每一行匹配都會被更新爲'@ List.nrID'。 – JiggsJedi