我有一些SSIS包将一些表从Server1复制到Server2。现在我需要将此软件包更新为Server3 for Server3。我可以这样做,还是我必须删除包并重新创建?
提前致谢 埃利安娜
答案 0 :(得分:0)
我可能误解了您的原始请求。保留旧的答案,但我在下面添加了一个不同的方法。
扩展@ praveen的评论
运行SSIS包时,有两种典型的机制可以执行此操作。 dtexecui和dtexec。前者是在Windows资源管理器中双击包时启动的,而后者是从命令行或SQL代理使用的。我发现使用UI(SQL代理或Windows GUI)构建命令行更容易。在您的情况下,您将覆盖Server2上的连接字符串的值。也可以看看 Executing the same SSIS Package with different parameters at different time
如果程序包需要将数据从Server1复制到两个目标(Server2 和 Server 3),那么您将要使用配置切换目标或修改程序包两次运行作业同时写入两个目的地。
在重新阅读请求时,我相信您的愿望是更改源,而不是添加其他目标。当前进程是来自Server1的数据进入服务器2.所需状态是Server3到Server2。您的包可能看起来像
重要的是连接管理器的名称。目前,Server1的名称嵌入在SourceConnectionOLEDB
中。您希望SQL代理在运行时覆盖该值。
在当前的SQL代理作业中,单击“数据源”选项卡(除非您在2012年,然后您将要查找“高级”选项卡)检查SourceConnectionOLEDB
连接管理器和然后用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