需要在UPDATE t-SQL语句中对SELECT进行一些说明

ahm*_*md0 5 sql t-sql sql-server sql-update

比如,如果我有以下t-SQL语句(旨在在SQL Server 2008上运行):

UPDATE tbl
SET col1 = (
    SELECT MAX(col1) FROM tbl AS t1 WHERE t1.type = tbl.type
);
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

Eri*_*ikE 4

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