5

假设我有以下 t-SQL 语句(设计为在 SQL Server 2008 上运行):

UPDATE tbl
SET col1 = (
    SELECT MAX(col1) FROM tbl AS t1 WHERE t1.type = tbl.type
);

在这种情况下 SELECT 究竟是如何工作的:

  1. 它选择考虑每个 UPDATE 的结果,或者

  2. 它在 UPDATE 开始更新记录之前从 tbl 中进行选择。

有人可以为我澄清一下吗?

4

2 回答 2

4

2!您的子查询 SELECT 提取在 UPDATE 进行任何更改之前确定的值。

于 2012-07-20T08:44:23.897 回答
-2

是 1

1. 它选择考虑每个 UPDATE 的结果,或者

于 2012-07-20T08:32:30.093 回答