将值传递给执行SSIS包中的变量

问题描述:

我有一个SSIS包来加载一些基于月份的数据,我想通过windows批处理文件调用这个包。以下是在现在工作正常的CMD文件:将值传递给执行SSIS包中的变量

CD /D C:\Program Files\Microsoft SQL Server\100\DTS\Binn 

DTExec.exe /f "E:\APAutomation\SSIS\AP\ActualDataImport_Console_PL.dtsx" /SET \Package.Variables[User::ActualMonth].Properties[Value]; "9" 

现在我用一个变量代替9,以使其不太硬编码

CD /D C:\Program Files\Microsoft SQL Server\100\DTS\Binn 
set ActualMonth = 9 

DTExec.exe /f "E:\APAutomation\SSIS\AP\ActualDataImport_Console_PL.dtsx" /SET \Package.Variables[User::ActualMonth].Properties[Value]; "%ActualMonth%" 
然而

,这是不行的:这是错误消息:

C:\Program Files\Microsoft SQL Server\100\DTS\Binn>DTExec.exe /f "E:\APAutomatio 
n\SSIS\AP\ActualDataImport_Console_PL.dtsx" /SET \Package.Variables[User::Actual 
Month].Properties[Value]; "" 
Microsoft (R) SQL Server Execute Package Utility 
Version 10.50.1600.1 for 64-bit 
Copyright (C) Microsoft Corporation 2010. All rights reserved. 

Argument ""\Package.Variables[User::ActualMonth].Properties[Value];"" for option 
"set" is not valid. 

C:\Program Files\Microsoft SQL Server\100\DTS\Binn>pause 
Press any key to continue . . . 

我也试过:

set ActualMonth = "9" 
DTExec.exe /f "E:\APAutomation\SSIS\AP\ActualDataImport_Console_PL.dtsx" /SET \Package.Variables[User::ActualMonth].Properties[Value]; %ActualMonth% 

它向我扔了同样的错误消息。请帮忙!

我觉得您的具体问题是空间...

使用本

set ActualMonth=9 

,而不是这样的:

set ActualMonth = 9 

你在做什么,基本上设置包的配置从一个批处理文件。如果你设置软件包从包配置文件中读取并将你的月份号码放在那里,它可能会更好。

+0

你是对的!刚刚发现。谢谢 – Jasmine

+0

我建议你看看软件包的配置......你打算每个月手动设置这个月吗? –

+0

感谢您的建议。实际上,在我真正的软件包中,我正在调用setenviroment bat文件,这是参数的值。我没有提到,为了简单和专注我在这里问的问题。 – Jasmine