我正在使用具有数据源和Ole DB Sql任务的数据流任务的SSIS 2012。 数据源正在创建一组Id的{1,2,3等},其中Ole DB Sql Task删除另一个数据库表中的记录。我在Sql Profiler中看到的是每个Id的删除命令,这是因为它在逐个记录的基础上工作。我最多可以获得10,000条记录。
有没有办法将数据源的输出作为一组使用,并说:
delete from Table1 where Id in { set of Id's }
答案 0 :(得分:3)
你不能在SSIS中这样做。
实际上,您可以在SSIS中构建表达式并执行该表达式,但您不希望这样做。表达式在他们可以拥有的字符数量上是有限的,并且在维护时间是一团糟。
有些事情最好直接在存储过程中完成,而其他更好的SSIS。 SSIS的艺术是知道何时在SSIS或程序中进行。
祝你好运!