我在SQL Server代理程序作业中运行SSIS包。我需要为生产设置几个变量,因为我使用开发设置进行开发,例如,这是一个日志变量,它传递用于文本文件连接字符串的路径。我使用“设置值”UI对话框来设置此值,此作业步骤的结果命令行如下所示...
/SQL "\MyFolderInMSDB\MyPackage" /SERVER "mw-test" /CHECKPOINTING OFF /SET "\package.variables[log].Value";"C:\Logs\Imports\mylog.log" /REPORTING E
尝试设置变量时似乎没有错误,但是当我运行作业时,它会记录到我开发它时在任务中定义的变量,而不是我作为上面变量发送的路径。有人见过这样的东西吗?
答案 0 :(得分:7)
假设您已粘贴SQL代理作业步骤信息而未重新输入,则问题很可能是由于区分大小写。 SSIS中的 Stuff 区分大小写,因此“log”的变量名称与“Log”不同。
/SQL "\MyFolderInMSDB\MyPackage" /SERVER "mw-test" /CHECKPOINTING OFF /SET "\Package.Variables[User::log].Properties[Value]";"C:\Logs\Imports\mylog.log" /REPORTING E
@ Bill上面的示例也使用提供的路径进行区分大小写。
答案 1 :(得分:0)
试试这个:http://www.buildingmeaning.com/?p=171
看起来你非常接近。可能只是改变
"\package.variables[log].Value"
到
"\package.variables[log].properties[value]"
答案 2 :(得分:0)
我必须将ConfiguredValue标记为从SSIS包中的可执行文件值中读取并配置
\Package\Variable Container.Executables\Variables[User::run_type].Properties[Value]
否则,每次都会读取配置中的静态值。