“逻辑表”是什么意思?即Deleted
和Inserted
。也就是说,为什么我们不能做类似的事情:
Delete
From exampletable
Select *
From deleted
在同一会话中,并查看已删除表的结果?
答案 0 :(得分:2)
您可能搜索OUPUT
子句:
Delete From exampletable
OUTPUT deleted.*
答案 1 :(得分:1)
DELETED
和INSERTED
表是由SQL引擎创建的,用于处理数据操作语句中的数据操作。可以将它们视为类似于您将在存储过程中创建的临时表,以保存临时结果。
一旦您的DML语句完成,SQL Server将不再需要它们,因此它将“删除”“临时表”,并且它们不再在那里进行查询。不过,您可以使用DML语句中的OUTPUT
子句来访问它们,正如@LucaszSzozda解释的那样,因为到那时,引擎还没有删除它们。