我有一个项目需要部署到不在我们网络中的服务器,因此不知道某些属性,例如服务器和数据库名称。所以我在“Project.params”区域设置了一个参数。在此字符串参数中,我放置了:“Data Source=” + @[$Project::ServerName] + “;User ID=” + @[$Project::UserName] + “;Initial Catalog=” + @[$Project: :初始目录]; +“提供程序=SQLNCLI11.1;持久安全信息=True;”我从尝试此操作之前设置的原始连接复制了连接。
当我将项目级别 OLEDB 连接管理器设置为表达式中的此参数(对于连接字符串)时,我会在键入时获取该字符串,而不是其他参数的值。换句话说,当评估时,表达式将如上所示。这样做会使包中使用该连接的所有组件失效。关于我做错了什么有什么想法吗?预先感谢您。
最佳答案
您不能在单个参数化 OLE DB 连接管理器中使用多个项目参数。此外,您无法创建在其他项目参数上动态构建的项目参数,因为它们在脚本任务中是只读的。
您需要使用本地(包级)连接管理器,该管理器使用变量作为其连接字符串。该局部变量可以基于项目参数值构建。
另请参阅这篇文章了解类似的场景: Expression Builder of Connection Manager not showing Variables
关于connection-string - 使用参数的 SSIS 2012 动态 OLE DB ConnectionString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16240487/