SSIS 2012动态OLE DB连接字符串使用参数



我有一个项目,我需要部署到服务器不在我们的网络,因此将不知道某些属性,如服务器和数据库名称。所以我在"项目"中设置了一个参数。参数"区域。在这个字符串参数中,我放置:"数据源="+ @[$Project::ServerName] +";用户ID="+ @[$Project::UserName] +";初始目录="+ @[$Project::InitialCatalog];+ "Provider=SQLNCLI11.1;持久安全信息=True;"在尝试此操作之前,我从我设置的原始连接中复制了连接。

当我将项目级OLEDB连接管理器设置为表达式中的这个参数(用于连接字符串)时,我得到的字符串就像我键入的一样,而不是其他参数的值。换句话说,当求值时,表达式就像上面那样出现。这样做会使包中使用该连接的所有组件失效。对我做错了什么有什么想法吗?

不能在单个参数化OLE DB连接管理器中使用多个项目参数。此外,您不能创建动态构建在其他项目参数上的项目参数,因为它们在脚本任务中是只读的。

您需要使用本地(包级)连接管理器,该连接管理器为其连接字符串使用变量。该局部变量可以建立在项目参数值的基础上。

也见这篇文章类似的场景:连接管理器的表达式生成器不显示变量

您的连接字符串缺少密码字段。我面临着同样的问题,并添加密码字段,引用一个变量/参数为我解决了这个问题。还要确保连接管理器的DelayValidation属性设置为"True"。

最新更新