我通过执行SQL任务(从remote_server选择*到x)将数据从一个SQL Server A加载到临时表,并与数据流中的另一个远程SQL Server B连接。
所以我在数据流中有两个来源:
1.包含来自SQL Server A(在先前任务中加载)的日期的本地临时表
2.远程SQL Server B上的表。
为了实现它,我改变了#34; RetainSameConnection"连接管理器属性(我使用它将数据从SQL Server A提取到本地计算机(SSIS服务器)为TRUE。它可以工作,但我无法并行加载这些任务,因为我得到:
S [[209]]错误:SSIS错误代码DTS_E_OLEDBERROR。 OLE DB错误 已经发生了。错误代码:0x80040E14。 OLE DB记录可用。 来源:" Microsoft SQL Server Native Client 11.0" Hresult:0x80040E14 说明:"声明无法准备。"。 OLE DB记录 是可用的。来源:" Microsoft SQL Server Native Client 11.0" Hresult:0x80040E14描述:"无效的对象名称 ' ## V_DEL'"
[SSIS.Pipeline]错误:" S"验证失败并返回验证 状态" VS_ISBROKEN"。
如何解决?
答案 0 :(得分:2)
如果您使用的是RetainConnection = True,那么一次只能有一个对象可以保留连接。这意味着如果2个sql任务并行运行,那么只有1个将使用保留的连接。类似于您无法查找和具有相同保留连接的dest的问题。 唯一的解决方法是序列化SQL调用。
答案 1 :(得分:0)
简单的解决方案:只需将全局临时表创建任务放在一个序列容器中,然后将零件插入另一个序列容器中。它将正常工作,我们可以并行运行2个任务。
答案 2 :(得分:0)
将临时表创建部分放在一个序列容器中,然后将其插入另一个序列容器中,即使我们并行运行具有多个Global临时表的任务,它也将起作用。