我已将变量定义为:
DateSecondsOffset Int default as 1
在SQL Server Integration Service项目中。我把它当作常数使用。
在一项任务中,我有以下SQL来设置另一个var NextDT:
SELECT dateadd(s, max(timestamp), 1) DT from myTable
我想用DateSecondOffset替换1,以便我可以在需要时更改它。我可以在那里输入var名称或者用@或其他东西作为前缀吗?
答案 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连接,您使用?。
详情可在此处找到