我在SO上已经完成了类似问题的大多数答案,但是没有人解决了这个问题。 我们使用C#代码创建了一个包,它将数据从源表分级到目标。
源表:RowKey,Col1,Col2
目标表:RowKey,Col1,Col2,RowID,RunID(RowID是目标表中的标识列,RunID是派生列,其值使用变量设置)
当我们直接执行它时,这个包运行正常,但是我们从主包运行这些包。当我们尝试从MasterPackage运行包(ChildPackage)时,我们收到错误: [SSIS.Pipeline]错误:" Oledb Destination"验证失败并返回验证状态" VS_NEEDSNEWMETADATA"。
我们尝试将ChildPackage的DelayValidation设置为true,甚至尝试设置" ValidateExternalMetadata"的值。对于源和目标组件为" False"用于ChildPackage的数据流任务。
源和目标中的列名之间没有大小写差异,并且在我们直接运行ChildPackage时它运行正常。 Master包执行的唯一任务是生成并设置一个由子包用作RunID值的变量。
答案 0 :(得分:0)
这适用于任何面临类似问题的人,在我们添加派生列的数据转换任务之一中,目标表中不存在其中一个派生列。一旦我们删除了这个额外的派生列,一切都运行良好。