假设我有以下 t-SQL 语句(设计为在 SQL Server 2008 上运行):
UPDATE tbl
SET col1 = (
SELECT MAX(col1) FROM tbl AS t1 WHERE t1.type = tbl.type
);
在这种情况下 SELECT 到底是如何工作的:
它会考虑每次更新的结果进行选择,或者
它从 UPDATE 开始更新记录之前的表中进行选择。
有人可以帮我澄清一下吗?
最佳答案
2!您的子查询 SELECT 会提取 UPDATE 进行任何更改之前确定的值。
关于sql - 需要对 UPDATE t-SQL 语句中的 SELECT 进行一些澄清,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11575635/