删除 SQL 中备份的所有内容

删除 SQL 中备份的所有内容

我想运行 SQL 数据库(MSSQL)的备份,然后删除该备份中包含的所有内容,本质上是清除备份数据,目的是在某个时间点将其存档。

数据库结构简单,只有 6 个表,只有隐含的 FK。最初的想法是,也许可以从所有表中抓取最大 PK 放入变量中,然后备份,然后删除 PK <= 备份前捕获的值。

如果在抓取和删除之间发生插入(中间备份),这当然无法达到我想要的效果

而且由于我无法在交易中执行备份……

我能想到的唯一可靠方法是备份它,暂时恢复为不同的名称,从备份数据中设置我的变量,然后返回原始数据库进行删除。当然,这似乎是一项漫长的路要走才能完成看似简单的任务。

答案1

采取数据库快照, 然后把它备份然后比较并对比快照和当前数据库。

话虽如此 - 如果不通过恢复来验证备份,您怎么能保证备份有效呢?

编辑:以下评论:

如果您只有 6 个表,为什么不对临时数据库执行 SELECT INTO BACKUP - 然后备份它?有点像制作自己的快照。

相关内容