2010-09-07 72 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查询的结果集。