在执行SSIS包时将值传递给变量

时间:2015-11-04 08:40:39

标签: ssis

我有一个SSIS包来加载一些基于月份的数据,我想通过windows批处理文件调用包。以下是cmd文件中现在运行正常的内容:

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%
它给我带来了同样的错误信息。请帮助!

1 个答案:

答案 0 :(得分:0)

我认为你的具体问题是空间......

使用此

set ActualMonth=9

而不是:

set ActualMonth = 9

您正在做的是基本上从批处理文件设置包配置。如果您将软件包设置为从软件包配置文件中读取并将月份编号放在那里,它可能会更好。