我想制作一个只能在表格不为空的情况下从表中复制数据的包。我知道如何计数以及如何制作一个用于复制数据的包,但问题是Source无法输入任何内容,所以我不知道如何去做。有什么建议么?SSIS复制表如果不为空
回答
我不明白你的意见,关于拖拽一个“从包到源代码的绿线”,而不是试图提前确定表是否为空,只要做你的副本,然后看看有多少行复制:
- 的行数
- 创建一个包变量使用的行数转换
- 使用an expression in the precedence constraint检查变量填充变量:如果是大于零则继续执行你的包的其余部分
如果表格不是空的,我必须截断destionation,否则保持原样。我的意思是,它不可能使用例如条件拆分组件(它将检查表是否为空),将优先级约束从它拖到OLE DB源,从中选择要复制的数据。 – 2012-02-07 12:44:36
这个作品,谢谢! – 2012-02-07 13:01:50
@Pondlife我不认为你可以在数据流任务上使用优先约束,你能吗? 我相信你只能在控制流程中使用它。
我会添加一个“执行SQL任务”计数,发送结果到一个变量,并从这个任务,我会拖动绿色箭头到数据流任务,使复制和在这个箭头上,我会添加优先约束上的表达式。
你对优先约束是正确的,但它并不重要:一旦你在变量中有rowcount,你可以在任何可以在数据或控制流中使用变量的地方使用它。你的建议与我的建议可能略有不同。 – Pondlife 2012-02-07 13:24:40
正如您已经正确指出的那样,数据流源不接受输入,因此无法在数据流中执行逻辑来确定是否应该运行此任务。
Cannot create connector.
The destination component does not have any available inputs for use in creating a path.
但是,没有什么能够阻止您在控制流程中设置此逻辑。我会使用一个查询,在目标系统上点击DMVs for a fast rowcount,只过滤我希望复制的表。
有了空表的列表,它可能取决于我如何处理它。对于少数表格,我将N个数据流定义为一个无作用的脚本任务作为先例,然后在表名称上使用一个表达式来启用路径,就像我在这个question上做的一样。
如果有许多表,我会为每个表定义一个包,然后根据空表名称动态构建包名来调用执行包任务。
- 1. SSIS复制多个表
- 2. 列表不复制(空)
- 3. Google表格如果值为X,则复制行。删除空白空格。
- 4. 复制使用SSIS
- 5. SSIS MySQL复制表到SQL Server
- 6. 使用SSIS包复制多个表
- 7. SSIS:从MySQL复制表到SQL Server 2008
- 8. 如果单元格为空时如何复制行?
- 9. Kotlin设置为空如果不为空
- 10. Python如果列表为空
- 11. 如果声明复制单元格,如果它们不是空白,请不要复制
- 12. 如何控制,如果查询的结果为空或空
- 13. 取日期为空,如果空表
- 14. 如果接收Bean映射字段为空,则Dozer仅复制
- 15. Mysql JoinInner如果不为空
- 16. 如果数不为空
- 17. Kotlin如果不为空
- 18. 不群,如果值为空
- 19. SQL如果不为空
- 20. 使用SSIS复制数据
- 21. 如何使用SSIS复制默认值?
- 22. Excel如果单元格不是空白,将行复制到工作表2
- 23. 如果循环输出文件不为空,则复制最后一行bash
- 24. rails如果为空然后没有重复查询关联表
- 25. [R如何复制空值在列表
- 26. SSIS ISNULL为空字符串
- 27. 如果表结果不为空,SQL查询连接
- 28. 复制行从表一表B如果键不存在
- 29. 如果edittext留空,强制为“0”
- 30. PHP的MySQL,如果行是空的,如果不为空
来源不能有任何输入? – joshua 2012-02-07 11:25:51
我想说,你不能将绿线从包装拖动到源...或者我错了,我错过了什么? – 2012-02-07 11:38:29