为什么此 CTE 会给出错误消息?
;with del as (
SELECT t1.*
FROM t1
INNER JOIN t2
ON t1.tid = t2.tid
)
DELETE del;
它给出了错误信息
消息 4405,级别 16,状态 1,第 5 行视图或函数“t”不可更新,因为修改会影响多个基表。
完全相同的语法适用于更新,但不适用于删除。
编辑:如果 t2 不是基表,而是基于常量的 cte,则相同的语法有效。