我正在尝试在SSIS中使用Execute SQL task
。但它不接受路径中的变量值?文件名是动态的,所以它必须来自变量。以下代码是执行SQL任务中的直接输入。执行SQL中的文件路径中的变量值SSIS中的任务?
USE [master]
go
RESTORE DATABASE MyDb FROM
DISK = N'c:\DBRestores\?'
WITH REPLACE
go
然后我使用Parameter Mapping
来映射该值,但任务失败。
任何帮助?谢谢
我正在尝试在SSIS中使用Execute SQL task
。但它不接受路径中的变量值?文件名是动态的,所以它必须来自变量。以下代码是执行SQL任务中的直接输入。执行SQL中的文件路径中的变量值SSIS中的任务?
USE [master]
go
RESTORE DATABASE MyDb FROM
DISK = N'c:\DBRestores\?'
WITH REPLACE
go
然后我使用Parameter Mapping
来映射该值,但任务失败。
任何帮助?谢谢
您可以在表达式中设置动态参数。 在Execute SQL Task Editor
,转到Expressions
- >Property
- >SQLStatementSource
- >Expression
并放在SQL下面,替换您的动态变量名称并点击Evaluate Expression
并检查评估值。
"USE [master]
go
RESTORE DATABASE MyDb FROM
DISK = N'c:\\DBRestores\\" + @[User::VariableParameter] + "'
WITH REPLACE
go"
如果评估值符合预期,那么脚本将接受来自变量的动态文件名。
Hi @Jigar,谢谢你的回复。我会试试这个,让你知道。谢谢 – user3583912
嗨@Jigar,当我检查'Evaluate Expression'时,我尝试了相同的过程。该值显示正确,但是“执行SQL任务”显示“任务验证期间存在错误”。在“常规选项卡”中的“直接输入值”中应该写什么?因为我已经在'Expressions'选项卡中使用了代码。谢谢 – user3583912
在常规选项卡中, 'SQL源类型:'直接输入 'SQL语句:' - 保留空 - 这将自动从表达式 - – Jigar
尝试使用变量来动态构造整个SQL字符串。 –
您好@Tab Alleman,感谢您的回复。我试图用动态sql进行封装,但它仍然不能在SSIS中工作。我想将SSIS变量值传递给T-sql语句?我想现在你明白了我的观点。谢谢 – user3583912
当您尝试动态sql时,您是否将SQL Source Type更改为变量?你能发布任务属性的屏幕截图吗? –