在 T-Sql 中编码自三个多月以来,我第一次看到在某些代码CROSS JOIN
中的UPDATE
语句中使用 a 并且我无法弄清楚这种构造的用例。
有人知道吗?
编辑:这是一个我还不能很好理解的示例代码。
UPDATE a
SET a.COL1 = b.COL1
FROM Table1 AS a
CROSS JOIN Table2 AS b
代码中还有其他更新提供了WHERE
如下子句:
UPDATE a
SET a.COL1 = b.COL1
FROM Table1 AS a
CROSS JOIN Table2 AS b
WHERE condition_on_columns_from_a_and_from_b
关键是对于 Table1 的每一行,带有过滤的交叉连接上的选择返回多行。
我对这种行为的理解有点困惑。
PS:表 Table1 占用超过 5 GB 的空间..