【发布时间】:2017-12-21 17:45:13
【问题描述】:
我目前正在为我们的数据库建立归档和清除流程。我从一位几天前离职的员工那里接手了这项任务——过去几个月他一直在(不经常)从事这项工作,所以我不得不花很长时间来追溯他的步骤,并试图弄清楚如何他把这一切都安排好了。我们正在使用计划任务来执行我们的归档过程,我已经准备好部署该部分。但是,我们使用 SSIS 包来处理清除过程,而且我之前从未创建或修改过 SSIS 包,所以我遇到了一些问题,坦率地说,我什至不确定从哪里开始故障排除。
本质上,我们有一个表,用于存储将要归档(并最终清除)的表列表,该表还记录了需要清除表的顺序,以避免留下任何孤立记录或 FK 冲突.然后,SSIS 包的目的是加载表列表,按照清除顺序排序,然后循环遍历每个表并根据 WHERE 子句从它们中删除,该子句引用每条记录的存档日期。我认为我遇到的问题之一是表名不能用作 SQL 命令中的参数,尽管尝试了一些方法来解决这个问题,但我还是不能让它正常工作。
根据我在其他地方读到的内容,我尝试创建一个包含我要执行的 SQL 语句的变量,然后选择该变量作为 SQL 语句的源,但我仍然没有正确。我想我可能会错误地从包含 SQL 命令的 foreach 循环中提取表名,但我不确定我做错了什么。
如果有帮助,我将在下面发布我正在使用的两个 SQL 命令的图片。我也可以发布 foreach 循环,或与任一命令有关的不同信息。我再次为我的问题含糊不清表示歉意,我只是对 SSIS 还不够熟悉,还不知道提供哪些有用的信息。不幸的是,我没有足够的代表直接发布图片,所以我只提供链接。
清除订单 SQL 命令
删除 SQL 命令
【问题讨论】:
标签: sql-server ssis etl