【发布时间】:2016-02-17 13:53:31
【问题描述】:
我需要选择记录,检查我的选择标准并对其进行改进,直到获得所需的所有记录,然后删除(或以其他方式更改)这些记录。让我们暂时删除。
select <fields> from <database> where <condition>
(检查,调整条件)
delete from <database> where (<same condition>)
这不是一种更简单的方法,例如管道,将选定的记录直接推入删除语句吗?我使用了将所有记录号选择到临时数据库中的技术,但没有直接的方法吗?
我搜索了 Stack Overflow,发现了几个问题,人们问如何将 select 语句转换为 delete 语句,这不是我想要的。我的想法是这样的:
select ... from ... where ... | delete
或者也许像这样的解决方法......
/* create a list of records to delete */
select ... from ... where ... into @temp
/* shove the list into delete */
delete @temp
SQL 标准是否支持我想要的机制,或者是否有特定于平台的方法(MS SQL Server)?
【问题讨论】:
-
但是为什么要选择您不想保留的数据呢?不能直接删吗?
-
如果您想根据某些条件选择某些内容 - 请选择。如果您想使用某些条件删除 - 请删除。为什么要费心混合它并发明新的语法、管道等等?
-
@jarlh 本质上,他以交互方式使用 SQL,因此对于他的(狭窄的)用例,以及他的特殊思维方式,这是有道理的。我想他来自脚本背景(Bash、PowerShell 等)。 OP - 如果我误解了,请随时纠正我:)
-
@RB ...这正是我的情况。
标签: sql sql-server select sql-delete