我有一些 SSIS 包可以将一些表从 Server1 复制到 Server2。现在我需要更新这个包来替换 Server1 为 Server3。我可以这样做还是必须删除包并重新创建?
在此先感谢埃利亚娜
我有一些 SSIS 包可以将一些表从 Server1 复制到 Server2。现在我需要更新这个包来替换 Server1 为 Server3。我可以这样做还是必须删除包并重新创建?
在此先感谢埃利亚娜
我可能误解了您最初的要求。保留旧答案,但我在下面添加了不同的方法。
扩展@praveen 的评论
当你运行一个 SSIS 包时,有两种典型的这样做的机制。dtexecui 和 dtexec。前者是在 Windows 资源管理器中双击包时启动的,而后者是从命令行或 SQL 代理使用的。我发现使用 UI(SQL 代理或 Windows GUI)来构建命令行更容易。在您的情况下,您将覆盖 Server2 上连接字符串的值。另请参阅 在不同时间执行具有不同参数的相同 SSIS 包
如果包需要将数据从 Server1 复制到两个目标(Server2和Server 3),那么您将需要使用配置运行该作业两次以切换目标或修改包以同时写入两个目标。
在重读请求时,我相信您的愿望是更改来源,而不是添加额外的目的地。当前进程是从 Server1 到 Server 2 的数据。所需状态是从 Server3 到 Server2。您的包裹可能看起来像
重要的是连接管理器的名称。目前,Server1 的名称嵌入在SourceConnectionOLEDB
. 您将希望 SQL 代理在运行时覆盖该值。
在当前 SQL 代理作业中,单击“数据源”选项卡(除非您使用的是 2012,否则您将寻找“高级”选项卡)检查SourceConnectionOLEDB
连接管理器,然后将 Server1 的值替换为 Server3
命令行选项卡应该看起来像
/FILE "\\serverB\c$\temp\Simple.dtsx" /CONNECTION SourceConnectionOLEDB;"\"Data Source=SERVER3;Initial Catalog=SRC;Provider=SQLNCLI10;Integrated Security=SSPI;Auto Translate=false;\"" /CHECKPOINTING OFF /REPORTING E