我必须创建一个删除一些行的过程,查询如下:
DELETE Car
WHERE Vin IN (
SELECT Vin
FROM CarDetails
WHERE Id IN (JH4KA826000000000, ...)
)
但在它将被删除之前,我想有这些特定行的备份。我将无法访问数据库,以手动导出它由sql开发人员(插入到)。如果需要的话,我如何通过程序来轻松恢复?
在我的情况下,我不需要整个表的副本。只有这些被删除的行。
1条答案
按热度按时间ubof19bj1#
有几个选择。如果你只想备份被特定过程删除的行,但不关心行是否以其他方式删除,那么我只备份过程本身中的行:
但是,如果要备份删除的每一行,请考虑使用
BEFORE DELETE
触发器:另一个非常干净的解决方案是使用"In-Database Archiving",从12.1开始就可以使用了。这将允许您在行上设置一个标志,使该行不可见。因此,对于所有查询,该行似乎已被删除,但它仍保留在表中,并且可以在需要时显示/取消删除。
选择最符合您需求的解决方案。