为什么我们无法在 SQL 服务器中查看已删除的 table

Why can't we view deleted table in SQL Server

"logical table?" 即 DeletedInserted 是什么意思。也就是说,为什么我们不能这样做:

Delete 
From exampletable

Select *
From deleted

在同一会话中查看删除的结果 table?

您可能搜索 OUPUT 子句:

Delete From exampletable
OUTPUT deleted.*

DELETEDINSERTED table 由 SQL 引擎创建,用于处理数据操作语句中的数据操作。将它们视为类似于您将在存储过程中创建的用于保存临时结果的临时 table。

一旦您的 DML 语句完成,SQL 服务器不再需要它们,因此 "drops" "temp tables" 并且它们不再在那里查询。但是,您可以使用 DML 语句中的 OUTPUT 子句访问它们,正如@LucaszSzozda 解释的那样,因为此时引擎还没有删除它们。