我正在寻找有关从数据库中完全删除多个记录(超过3000条记录)的最佳方法的建议。由于GDPR原因,我被分配了从数据库中删除旧记录的工作。
但是,这是一个数据库,我对此并不了解,也没有有关如何将表连接在一起的文档,ERD等。
我设法弄清了需要删除记录以从数据库中完全删除详细信息的表,大约有24个需要删除记录的表。
我有一个ID号列表,需要删除这些ID号,所以我在考虑使用ID列表创建一个临时表,然后创建一个存储过程以遍历临时表。然后针对这24个表中的每一个,检查它是否包含与ID号相关的记录,然后将它们删除。
有人知道是否有删除这些记录的更好方法?
答案 0 :(得分:1)
我将使用一个表变量并合并所有:
declare @ids table (id int primary key)
insert into @ids (id)
select 1 union all
select 2 union all
...
select 3000
delete from table_name where id in
(select id from @ids)
很显然,只需将数字更改为实际ID