sql - 使用单个查询删除多行

标签 sql sql-server-2005 sql-delete

这应该是一个简单的问题,但是我还没有找到明确的答案。有谁知道如何使用单个查询从SQL Server 2005中的单个表中删除多行?我想知道这是否只是使用UNION ALL方法插入多行的相反方法。这样可以吗? :

DELETE FROM Table (Name, Location)
SELECT 'Name1', 'Location1'
UNION ALL
SELECT 'Name2', 'Location2'
UNION ALL
SELECT 'Name3', 'Location3'
etc...

编辑:我应该指出,这是我要从中删除记录的链接表。没有主键,并且任何列的值都可以重复。因此,在删除记录之前,我需要确保两列都包含同一记录的特定值。

最佳答案

您可以尝试以下方法:

DELETE FROM YourTable
WHERE (Name = 'Name1' AND Location = 'Location1')
OR (Name = 'Name2' AND Location = 'Location2')
OR (Name = 'Name3' AND Location = 'Location3')

关于sql - 使用单个查询删除多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3272668/

相关文章:

mysql - 在 web.py DB INSERT 中使用 SQLLiteral ("NOW()") 的可移植性如何?

sql - IN 与 JOIN 大行集

php - MySQL 删除除 NULL 之外的重复行

mysql - 从mysql表中删除N条旧记录

MySQL 从 2 个表中删除记录

mysql - 如何对多个 NULLABLE 列进行唯一索引约束?

mysql - 如果 key 存在则自动更新

sql - 关闭winform应用程序、自动保存选项后sql server中的数据丢失

php - 用于从单个数据库中的多个表中进行选择的 SQL 查询

sql-server - 如何过滤单个数据库的 SQL Server 2008 Profiler 输出?