Sql server 在delete语句中输出未删除的条目

Sql server 在delete语句中输出未删除的条目,sql-server,tsql,Sql Server,Tsql,有没有办法在delete语句中输出未删除的条目 例如,有一个包含以下数据的Person表: 执行以下语句后: delete Person where Id in (1, 3) 我需要输出未删除的条目,在这种情况下: 我尝试使用OUTPUT子句编写: delete Person output Id, Email where Id in (1, 3) 但我得到了以下错误: 列名“Id”和“Email”无效 您需要使用delete,然后选择.No-output子句与使

有没有办法在delete语句中输出未删除的条目

例如,有一个包含以下数据的Person表:

执行以下语句后:

delete Person where Id in (1, 3)
我需要输出未删除的条目,在这种情况下:

我尝试使用OUTPUT子句编写:

delete Person 
       output Id, Email
       where Id in (1, 3)
但我得到了以下错误:

列名“Id”和“Email”无效


您需要使用delete,然后选择.No-output子句与使用它的查询直接相关。如果删除行,则output子句将使这些删除的行可用。没有机制输出不受语句影响的行。请看一下文档以更正您的语法,尽管它不能满足您的需要。。。。当所讨论的表碰巧包含几十亿条记录,而您只删除了2条记录时,您将收到该输出中的所有剩余记录,对吗?@Piotr我只需要使用delete语句。@SMor感谢您的回复。事实上,不幸的是,没有这样的机制。
delete Person where Id in (1, 3);
select id, email from Person;