2013-02-06 30 views
1

我正在SQL Server代理作业中运行SSIS包。当我使用开发设置进行开发时,我需要为生产设置几个变量,并且这是一个日志变量,它传递一个用于文本文件连接字符串的路径。我用“设置值”对话框中的用户界面来设置该值,并将所得命令行此作业步骤是这样的......在SQL代理作业中设置SSIS变量

/SQL "\MyFolderInMSDB\MyPackage" /SERVER "mw-test" /CHECKPOINTING OFF /SET "\package.variables[log].Value";"C:\Logs\Imports\mylog.log" /REPORTING E 

似乎没有是一个错误尝试设置变量,但是当当我开发它时,我运行它正在登录到任务中定义的变量的作业,而不是上面作为变量发送的路径。任何人看到这样的事情?

回答

7

假设你已经粘贴你的SQL代理作业步骤的信息,而不是重新输入它,问题是很可能是由于区分大小写。 SSIS中的东西区分大小写,因此“log”的变量名称与“Log”不同。

/SQL "\MyFolderInMSDB\MyPackage" /SERVER "mw-test" /CHECKPOINTING OFF /SET "\Package.Variables[User::log].Properties[Value]";"C:\Logs\Imports\mylog.log" /REPORTING E 

@比尔上面的例子也会通过提供的路径进入区分大小写。

+0

似乎\ package.variables [日志] .Value不工作,但不会引发错误。 \ package.variables [log] .Properties [Value] IS按预期工作。谢谢! – JBone

+0

嘿,我们可以添加一个值给变量(不是参数),即使我们用ssis目录添加包。 –

0

我不得不以纪念ConfiguredValue从在SSIS包中可执行文件值和配置

\Package\Variable Container.Executables\Variables[User::run_type].Properties[Value] 

被读取,否则,从配置的静态值读取每一次。