从SQL SERVER中的CTE中删除行

sat*_*jit 20 sql t-sql sql-server

我有一个CTE,它是一个表上的select语句.现在,如果我从CTE中删除1行,它会从我的基表中删除该行吗?

如果我有一个临时表而不是CTE,它也是同样的情况吗?

OMG*_*ies 18

检查DELETE语句文档,是的,您可以使用CTE删除它,它将影响基础表.同样对于UPDATE语句......

如果我有一个临时表而不是CTE,它也是同样的情况吗?

不,从临时表中删除只会影响临时表 - 没有与数据来自的表的连接,临时表是一个独立的对象.

  • @satyajit:临时表是一个表(可以有不同的范围:本地,全局),它将数据存储在TEMPDB中(而不是它创建的数据库).CTE是派生表/内联视图,仅存在于其声明的查询范围内 - 使用当前数据库中的资源. (2认同)