Sql 如何在SSIS包中设置变量?
我需要在SSIS包中使用两个变量,Sql 如何在SSIS包中设置变量?,sql,sql-server,visual-studio,ssis,Sql,Sql Server,Visual Studio,Ssis,我需要在SSIS包中使用两个变量,@extract\u beg\u date和@extract\u end\u date 我该如何设置他们的行为方式?例如,在存储过程中,它将如下所示: SET @extract_beg_date = CASE WHEN DATEPART(weekday,GETDATE()) = '2' THEN CAST(CONVERT(VARCHAR(10),GETDATE()-2,101) AS DATETIME)
@extract\u beg\u date
和@extract\u end\u 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
选择*
来自dbo.test\u tbl
其中[TimeStamp]>=@extract\u beg\u date和[TimeStamp]<@extract\u end\u date
通过转到控制流并从菜单栏的SSIS菜单中选择它,可以打开变量窗格。在这里可以创建变量并设置其类型
可以使用控制流中的脚本任务或数据流中的脚本组件设置变量。为此,请将变量添加到脚本编辑器中的ReadWriteVariables列表中,并按如下方式访问它:
控制流:
Dts.Variables["VariableName"].Value = "hello";
数据流:
Variables.VariableName = "hello";
最后,将变量放入SQL语句中。我假设您在数据流开始时使用OLEDB连接来执行此操作。在OLE DB源代码编辑器中,将数据访问模式更改为SQL命令,并将问号作为变量的占位符:
从dbo.test\u tbl中选择*其中[TimeStamp]>=?和[时间戳]<?
然后单击“参数”按钮,并在下拉列表中选择变量,以将它们分配给参数
注意变量的范围。如果变量的作用域是另一个数据流任务,则在执行选择时将无法看到它们。我将按如下方式执行此操作:
创建这两个变量时,是否将其设置为字符串类型或日期时间类型?我正在尝试从“设置值”选项卡设置变量值以执行SSIS包。有没有办法从这里查看可用变量。