繁体   English   中英

SQL Server-根据WHERE运算符删除(x)行数

[英]SQL Server - Delete (x) number of rows depending on a WHERE caluse

我有一种情况,一整天,记录都设置为删除(布尔值),但实际上并未删除。 这些值的列表显示在视图中(我们称其为ViewToDelete ),例如:

ID      DELETE
--------------
1         1
4         1
5         1

归根结底,我希望能够一次性删除此视图中存在的这些值,这可以实现吗?

DELETE FROM mytablename 
WHERE ID = ViewToDelete.ID 

--THIS WOULD WORK IF THERE WAS 1 VALUE, BUT FOR MULTIPLE VALUES
--IT RETURNS AN ERROR AS I WOULD EXPECT

您可以通过JOIN视图来做到这一点:

Delete  M
From    MyTableName     M
Join    ViewToDelete    V   On  V.Id = M.Id
                            And V.Delete = 1

你可以简单地写

Delete from Viewtodelete where delete=1

如果视图仅从1个表中获取所有数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM