我在Business Intellegience Development Studio中内置了一个SSIS包,它同时指定了源数据库和目标数据库。现在我想使用一些变量来参数化数据库连接并在命令行中运行包。
我尝试用我的变量@ [User :: SourceDb]替换数据库名称和sql server实例。 @ [User :: SourceHost],但无法连接到数据库。
是否可以对数据库进行参数化,并且我的变量用法有什么问题?提前谢谢!
答案 0 :(得分:6)
有一篇不错的帖子here详细说明了这种做法。
您需要使用ConnectionManager并从配置包中设置它的ConnectionString属性。
ConnectionString属性是完全限定的数据库连接字符串,如
Data Source=localhost;Initial Catalog=SSISConfig;Provider=SQLNCLI.1;Integrated Security=SSPI;Auto Translate=False;
使用配置包时会有一些烦恼和烦恼,所以你可能不得不摆弄一下。我会更详细,但自从我上次参与SSIS项目以来已经有一年了。
如果您有任何具体问题,请回来评论您的成绩。我会试着改变旧的记忆。
答案 1 :(得分:3)
您需要在连接管理器中定义“表达式”,然后将其替换为服务器/数据库。
您无法在SSIS中直接使用变量
请参阅“Using Variables in Packages"指向使用Property Expressions in Packages。
的链接快速的Bingle之后:http://sqlrs.blogspot.com/2006/03/using-expression-variables-in-ssis.html
答案 2 :(得分:0)
您可以右键单击项目或包中的任何连接,然后选择"参数化"连接,项目或包参数中的所有字段。对于.NET提供程序(SqlClient数据提供程序)类型的OLE DB连接,连接字符串不同,因此请小心。我们设法在Project.params
中有一个集中的连接位置