说内就选择一些澄清,如果我有下面的T-SQL语句(设计,SQL Server 2008上运行):需要更新T-SQL语句
UPDATE tbl
SET col1 = (
SELECT MAX(col1) FROM tbl AS t1 WHERE t1.type = tbl.type
);
为什么说在这种情况下,选择工作:
它选择考虑到每个更新的结果,或
它从TBL选择,因为它是更新前开始更新记录。
有人可以为我澄清这一点吗?
说内就选择一些澄清,如果我有下面的T-SQL语句(设计,SQL Server 2008上运行):需要更新T-SQL语句
UPDATE tbl
SET col1 = (
SELECT MAX(col1) FROM tbl AS t1 WHERE t1.type = tbl.type
);
为什么说在这种情况下,选择工作:
它选择考虑到每个更新的结果,或
它从TBL选择,因为它是更新前开始更新记录。
有人可以为我澄清这一点吗?
2!您的子查询SELECT会在UPDATE进行任何更改之前确定该值。
我在一个实例中测试了它。而且......你说得对。谢谢。 – ahmd0 2012-07-20 20:24:09