我需要帮助创建一个包,该包遍历给定服务器中的数据库,查找包含单词“eventlog”的表名,并删除一年以上的所有行。删除数量应为50000批。
我能够使用execute sql task读取数据库名称,将完整的结果集存储在一个对象类型变量中,并用于每个循环容器从变量中读取结果,需要从中获得帮助
最佳答案
如果在单个数据库中有多个表可能包含单词“eventlog”,则需要在父“for each”容器中为每个表添加一个附加的for each(for each table)。使用父容器和当前容器中的变量在其中为每个容器构建一个动态delete语句。
你的包裹看起来应该很像这个:
控制流
包变量
将日期筛选器添加到“delete_log_records_sql”变量
获取数据库名称-执行SQL任务
获取数据库名称-将结果分配给对象变量
foreach db-db name对象变量映射
foreach db-db名称集合var映射
获取表名-执行SQL任务
获取表名-将结果分配给对象变量
foreach table-表名对象变量映射
foreach table-表名集合变量映射
删除日志记录-执行SQL任务
关于sql - SSIS包可遍历数据库以查找表并删除旧行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44448558/