我在2个不同的数据库上有2个表。
当数据库A中的表A包含数据并且某个值写入特定列时,我需要截断数据库B上的表B并将数据从表A复制到表B.
所以,当表A看起来像:
ID | column2
1 | null
2 | null
3 | null
然后我们什么都不做。
如果表A看起来像
ID | column2
1 | value
2 | value
3 | value
然后表B被截断,表A中的数据被复制到表B.
我尝试使用执行SQL任务,但这仅适用于所有表来自同一数据库的情况。
任何sugestions?
答案 0 :(得分:3)
如果您尝试在SSIS中执行此操作,请在控制流中运行Execute SQL Task
,其中Table A
中符合条件的记录计数并将变量设置为{{1}如果有或true
,如果没有。
从false
创建连接,但要执行Execute SQL Task
和truncate
语句。右键单击箭头并选择insert
以设置Edit...
,如果您刚设置的变量为Condition
或True
,则设置为遵循该路径。
如果存在任何连接,请创建与控制流中下一步的连接,并将此连接的False
属性更改为LogicalAnd
。您应该看到箭头更改以说明不同的优先级行为。创建从原始false
到控制流中下一步的另一个连接。此箭头也应该看起来不同。
运行此软件包时现在会发生的变化是,对Execute SQL Task
和true
是否false
或truncate
设置变量按照控制流中的正确路径进行操作。一旦这些路径中的任何一个到达下一步(其中只有一个应该执行),您的包将继续正常。