2010-09-07 71 views
1

嘿,大家好,有沒有任何SQL Server 2005大師可以告訴我一種類型的技巧來獲取正被查詢的值?SQL Server值的幫助

例:

UPDATE l SET Inactive = 1 
FROM tbl1 e JOIN tbl2 l ON l.CID = e.CID 
    JOIN tbl3 p ON p.PID = e.PID 
    JOIN tbl4 c ON c.PID = e.PID 
    LEFT JOIN tbl5 g ON g.EID = e.ID 
     AND g.PID = e.PID 
WHERE e.PID = '315' 
AND Inactive = 0 
AND (e.Active = 0 OR g.ID IS NULL) 

如何在此之後,執行,我可以得到的,也就是說,e.CID值是多少?我已經試過

Print e.CID 

但是當然這是行不通的。任何其他方式來做到這一點?

謝謝!

大衛

+4

你想看看哪些行正在用來更新你的表嗎?是否有一個原因,你不能只是運行代碼調整爲使用SELECT而不是UPDATE? – 2010-09-07 20:35:17

回答

3

嘗試OUTPUT子句:

UPDATE l 
SET Inactive = 1 
OUTPUT e.CID 
FROM tbl1 e 
    JOIN tbl2 l ON l.CID = e.CID 
    JOIN tbl3 p ON p.PID = e.PID 
    JOIN tbl4 c ON c.PID = e.PID 
    LEFT JOIN tbl5 g ON g.EID = e.ID AND g.PID = e.PID 
WHERE e.PID = '315' 
AND Inactive = 0 
AND (e.Active = 0 OR g.ID IS NULL) 

這應顯示每行的e.CID列被更新,從你的UPDATE查詢的結果集。