假设我有以下 t-SQL 语句(设计为在 SQL Server 2008 上运行):
UPDATE tbl
SET col1 = (
SELECT MAX(col1) FROM tbl AS t1 WHERE t1.type = tbl.type
);
在这种情况下 SELECT 究竟是如何工作的:
它选择考虑每个 UPDATE 的结果,或者
它在 UPDATE 开始更新记录之前从 tbl 中进行选择。
有人可以为我澄清一下吗?
假设我有以下 t-SQL 语句(设计为在 SQL Server 2008 上运行):
UPDATE tbl
SET col1 = (
SELECT MAX(col1) FROM tbl AS t1 WHERE t1.type = tbl.type
);
在这种情况下 SELECT 究竟是如何工作的:
它选择考虑每个 UPDATE 的结果,或者
它在 UPDATE 开始更新记录之前从 tbl 中进行选择。
有人可以为我澄清一下吗?