在执行 SQL 任务 SSIS 中将变量作为参数传递
在 SSIS 包中涉及多个数据库操作通常需要动态设置 SQL 参数。 SSIS 中的执行 SQL 任务提供了一种实现此目的的便捷方法。
假设您有一个 SSIS 包,它从平面文件中检索数据并将其插入到数据库表中,利用执行 SQL 任务创建临时表使用参数化查询。您的目标是通过传递指定日期、投资组合 ID 和股票类型作为变量的参数来使查询动态化。
要在执行 SQL 任务中完成此操作:
1.将 SQLSourceType 设置为 Direct Input
这表示 SQL Statement 属性将直接指定 SQL 查询。
2.在 SQL 语句中定义变量参数
修改 SQL 语句以使用问号 (?) 作为参数的占位符。例如:
CREATE TABLE [tempdb].dbo.##temptable ( date datetime, companyname nvarchar(50), price decimal(10,0), PortfolioId int, stype nvarchar(50) ) Insert into [tempdb].dbo.##temptable (date,companyname,price,PortfolioId,stype) SELECT date,companyname,price,PortfolioId,stype FROM ProgressNAV WHERE (Date = ?) AND (PortfolioId = ?) AND (stype in (?)) ORDER BY CompanyName
3。将变量映射到参数
在“执行 SQL 任务”编辑器的“参数映射”部分中,添加 SQL 语句中的每个参数。然后,将每个参数映射到其相应的 SSIS 变量:
| Parameter | SSIS Variable | |---|---| | Date | @Date | | PortfolioId | @PortfolioId | | stype | @Stypet |
4。运行任务
执行后,执行 SQL 任务会将分配给这些变量的值注入到查询中,确保检索到适当的数据并将其插入到临时表中。
以上是如何在 SSIS 执行 SQL 任务中将变量作为参数传递?的详细内容。更多信息请关注PHP中文网其他相关文章!