我在以编程方式设置连接字符串时遇到问题。
这是我的项目的概述。我正在使用 2012 SSIS,并且在我的连接管理器中有两个连接(源和目标,都是 OLE DB 连接)。我有多个要运行的软件包。这些包中的每一个仅包含执行 SQL 任务。每个任务我都将 SQL 语句连接类型设置为 OLE DB,连接是目标,SQL 源类型是文件连接,文件连接是位于我的 C 驱动器上的一个文件,它是我在我的程序。
我将这些软件包部署在我的服务器上,这是一个 2012 实例。源连接和目标连接也在我的服务器上,但在 2008 R2 实例上。
我遍历 N 个数据库。在每个循环中,我可以通过执行 SQL 语句来设置 Connection String 和 IntialCatalog 属性:
DECLARE @var sql_variant = N'Data Source=MyServerName\SQL2008R2;初始目录=DatabaseName1;Provider=SQLNCLI11.1;Integrated Security=SSPI;Auto Translate=False;'
EXEC [SSISDB].[catalog].[set_object_parameter_value] @object_type=20,@parameter_name=N'CM.Destination.ConnectionString',@object_name=N'MAC',@folder_name=N'MAC',@project_name=N' MAC',@value_type=V,@parameter_value=@var
这确实有效,因为我可以在我的项目中打开配置选项,并在我逐步执行程序时看到连接字符串和初始目录值发生了变化。(我没有包含初始目录的 SQL,但它类似于连接字符串)
现在,当我通过程序执行此操作时,出现以下错误:
未找到连接“{9C2C8088-CE67-4D93-81B8-EC364D6E78D1}”。当未找到指定的连接元素时,Connections 集合会引发此错误。
有没有办法更新包,以便执行 SQL 任务有更新的连接?
附带说明一下,如果我在 Visual Studio 中打开包并修改连接,则包会执行。当我尝试以编程方式更改连接并执行时,或者当我尝试执行部署在服务器上的包时,它会出错。
我确实看到了这个问题,虽然它很相似,但我认为它的变化足以有一个单独的问题。 在包中找不到 SSIS 连接。我在这里找到了很多很棒的信息,只是还不是我想要的。
非常感谢任何帮助/建议!
谢谢
标记