SQL - 返回已删除的行

标签 sql select sql-delete

我想组合一个返回行的 SELECT 和一个删除我选择的行的子集的 DELETE?

这可能吗?

最佳答案

如果您有一个返回所有候选的 SELECT 语句,只需使用 OUTPUT DELETED.* 将 SELECT 更改为 DELETE。

 SELECT * 
 FROM tbl1
 INNER JOIN tbl2 on tlb1.col = tbl2.col
 INNER JOIN tlb3 on tbl2.anothercol = tbl3.somecol
 WHERE blah blah blah

可以变成:
 DELETE tbl1 OUTPUT DELETED.*
 FROM tbl1
 INNER JOIN tbl2 on tlb1.col = tbl2.col
 INNER JOIN tlb3 on tbl2.anothercol = tbl3.somecol
 WHERE blah blah blah

关于SQL - 返回已删除的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16669715/

相关文章:

Mysql查询匹配2个条件

sql - DATE 的 Oracle SQL 比较返回错误结果

python - 使用 Peewee 中的连接删除表中的多条记录?

SQL 'DELETE CASCADE'

mysql - 如何在Mysql中使用rank()而不是PARTITION BY

sql - 将带有时区的时间戳转换为星期几

sql - 一个 Select 中的 Oracle SQL 非唯一表别名

java - hibernate ,按 id 或唯一列选择

mysql - 我的 MySql 查询出了什么问题

mysql - 在连接多个表的 SQL 删除中,所有表都会受到影响吗?