我需要在我的 SSIS 包中使用两个变量,@extract_beg_date
and @extract_end_date
.
我如何设置它们以某种方式行事?例如,在存储过程中,它看起来像这样:
SET @extract_beg_date = CASE WHEN DATEPART(weekday,GETDATE()) = '2'
THEN CAST(CONVERT(VARCHAR(10),GETDATE()-2,101) AS DATETIME)
ELSE CAST(CONVERT(VARCHAR(10),GETDATE()-1,101) AS DATETIME)
END
SET @extract_end_date = CAST(CONVERT(VARCHAR(10),GETDATE(),101) AS DATETIME)
如何在不使用存储过程的情况下设置 SSIS 包中的变量?我希望能够在 SQL 命令文本中使用它,如下所示:
SELECT *
FROM dbo.test_tbl
WHERE [TimeStamp] >= @extract_beg_date and [TimeStamp] < @extract_end_date
我会这样做:
- 在流程上,添加执行 SQL 任务。
-
打开执行 SQL 任务并将 ResultSet 属性配置为 Single row,并将 SQLStatement 属性配置为:
选择
DATEPART(工作日,GETDATE()) = '2' 时的情况
然后 CAST(CONVERT(VARCHAR(10),GETDATE()-2,101) AS DATETIME)
ELSE CAST(CONVERT(VARCHAR(10),GETDATE()-1,101) AS DATETIME) END AS extract_beg_date,
CAST(CONVERT(VARCHAR(10),GETDATE(),101) AS DATETIME) AS extract_end_date
- 仍然在执行 SQL 任务中,转到结果集视图并添加两个结果输出。将结果名称分别设置为 0 和 1,并为 extract_beg_date 和 extract_end_date 创建 2 个变量。
- 在执行期间,执行 SQL 任务将获取 SELECT 查询的输出并将每个值保存到您创建的两个 SSIS 变量中。这些变量可以在后续步骤中用于参数化另一个查询。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)