SQL Server - 删除(x)行数取决于WHERE caluse

时间:2016-08-12 15:50:43

标签: sql sql-server

我有一个场景,全天将记录设置为删除(BOOLEAN VALUE),但实际上并未删除。这些值的列表显示在视图中(让我们称之为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

2 个答案:

答案 0 :(得分:7)

您可以通过JOIN视图执行此操作:

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

答案 1 :(得分:1)

你可以简单地写

Delete from Viewtodelete where delete=1

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