如何克服数据流任务中的vs_needsnewmetadata错误?

5 c# ssis packages configuration-files

我有一个SSIS包,可以将表中的数据从一个SQL Server 2005复制到另一个SQL Server 2005.我使用"数据流"任务执行此操作.在包配置文件中,我公开了目标表名.

问题是当我在配置文件中更改目标表名称时(通过记事本)我收到以下错误"vs_needsnewmetadata".我想我理解了这个问题......当我第一次设置包时,目标表列映射是固定的.

问题:使用ssis包进行上述操作最简单的方法是什么?

我已经在线阅读有关以编程方式设置元数据的内容,但我想避免这一点.我还编写了一个C#控制台应用程序,它可以很好地执行所有操作...所有表格等都在app.config中指定...但显然这个解决方案还不够好.

Mef*_*eff 6

您是否在数据源目标属性上将DelayValidation设置为False?如果没有,试试吧.

编辑:当然应该是DelayValidation为True,所以它只是继续尝试而不是检查.此外,不是在记事本中更改包,为什么不将表名放在变量中,将变量放入目标上的Expression中,然后在.DtsConfig配置文件中公开变量?然后你可以毫无危险地改变它.


ctr*_*yan 0

如果您所做的只是将数据从一台 SQL2005 服务器复制到另一台服务器,我只需创建一个链接服务器并使用存储过程来复制数据。SSIS 包是多余的。

如何创建链接服务器

创建链接服务器后,您只需编写类似...

INSERT INTO server1.dbo.database1.table1(id,name)
SELECT id, name FROM server2.dbo.database1.table1
Run Code Online (Sandbox Code Playgroud)

就 SSIS 包而言,我总是必须重新打开并重建包,以便在修改表列属性时更新元数据。