【发布时间】:2019-06-27 19:33:51
【问题描述】:
我正在寻找一些关于从数据库中完全删除多条记录(大约超过 3000 条)的最佳方法的建议。出于 GDPR 的原因,我被分配了一项从我们的数据库中删除旧记录的工作。
但是,这是一个我没有太多知识的数据库,也没有关于如何将表连接在一起的文档、ERD 等。
我设法计算出需要删除记录以从数据库中完全删除详细信息的表,大约有 24 个表需要删除记录。
我有一个需要删除的 ID 号列表,因此我正在考虑使用 ID 列表创建一个临时表,然后创建一个存储过程来循环遍历临时表。然后对 24 个表中的每一个进行检查,看看它是否包含与 ID 号相关的记录,然后是否删除它们。
有谁知道是否有更好的方法来删除这些记录?
【问题讨论】:
-
基本上,您想做“从 table_name 中删除 some_id = [some_parameter]”。为什么在这里使用临时表而不是直接从数据库中删除?
-
由于您不了解您的数据库,可能先对其进行建模,然后创建一个备份,这样您就可以确保不会犯不可恢复的错误。接下来是@SendhilkumarAlalasundaram 所说的
-
因为我有大约 3000 条不同的 ID 记录要删除,所以我打算使用一个临时表,这样我就可以遍历 3000 个奇数并使用变量来删除记录。我一直在尝试为数据库创建 ERD,以尝试弄清楚它们是如何连接在一起的,但我无法 100% 确定它们是正确的。
标签: sql sql-server-2014