如何在SSIS中使用常量变量

时间:2009-04-02 18:56:00

标签: sql-server-2005 ssis

我已将变量定义为:

   DateSecondsOffset Int default as 1

在SQL Server Integration Service项目中。我把它当作常数使用。

在一项任务中,我有以下SQL来设置另一个var NextDT:

  SELECT dateadd(s, max(timestamp), 1) DT from myTable

我想用DateSecondOffset替换1,以便我可以在需要时更改它。我可以在那里输入var名称或者用@或其他东西作为前缀吗?

3 个答案:

答案 0 :(得分:0)

如果你在剧本中......

Dts.Variables("DateSecondOffset").Value

如果你在某个领域提到它..

Scope::DateSecondOffset

将范围替换为您的范围,可以在变量的“包浏览器”选项卡中找到。

如果你在SQL中引用它......

  

SELECT @DateSecondOffset

确保在脚本任务的SQL任务和ReadOnly / ReadWrite变量中设置输入/输出参数。

答案 1 :(得分:0)

您必须将包变量作为SQL任务的参数传递。

你可以定义做它 - 在“执行SQL任务编辑器” - >“参数映射”部分
- 或“脚本任务编辑器”中 ReadOnlyVariables 选项( ReadWriteVariables 选项,如果您希望能够在任务期间更改变量值)窗口

然后在sql查询中声明变量并使用第一个参数初始化它:

DECLARE @DateSecondsOffset INT
SET @DateSecondsOffset = ?
SELECT dateadd(s, max(timestamp), @DateSecondsOffset ) DT from myTable

请参阅Patrick Index: Passing Variables to and from an SSIS task

答案 2 :(得分:0)

在Execute SQL任务中引用参数的语法取决于您正在使用的连接类型。

例如,您使用@ParameterName的ADO.NET连接。对于OleDB连接,您使用?。

详情可在此处找到

http://msdn.microsoft.com/en-us/library/cc280502.aspx