SSIS SQL任务,参数不创建临时表

时间:2014-12-15 18:35:44

标签: sql sql-server ssis dataflowtask

我有一个SQL任务,它创建一个临时表,然后是一个从该临时表中选择的数据流任务。一切都运行良好和花花公子,但当我向SQL任务添加一个参数时,数据流任务失败,说没有创建临时表。硬编码参数值有效。

保留相同的连接选项为true,设置了元数据,并且我的Int32变量被映射为名称0和1以及oledb的大小-1。

我设法以较小的比例复制它

SQL任务

DECLARE @Yesterday DATETIME
DECLARE @Today DATETIME

DECLARE @StartDisposition INT = ?
DECLARE @EndDisposition INT = ?

SET @Yesterday = CONVERT (date, DATEADD(day, @StartDisposition, GETDATE()))
SET @Today = CONVERT (date, DATEADD(day, @EndDisposition, GETDATE()))

SELECT @StartDisposition AS A, @Yesterday AS B, @Today AS C INTO #TempT

数据流任务,或仅用于此目的的SQL任务

SELECT * FROM #TempT

所以带参数的东西似乎搞乱了临时表的创建。

由于

对查询使用String变量表达式。这就是它的方式。

"DECLARE @Yesterday DATETIME
DECLARE @Today DATETIME

DECLARE @StartDisposition INT = " + (DT_STR, 20, 1252)@[User::StartDisposition] + "
DECLARE @EndDisposition INT =  " + (DT_STR, 20, 1252)@[User::EndDisposition] + "

SET @Yesterday = CONVERT (date, DATEADD(day, @StartDisposition, GETDATE()))
SET @Today = CONVERT (date, DATEADD(day, @EndDisposition, GETDATE()))

SELECT @StartDisposition AS A, @Yesterday AS B, @Today AS C INTO #TempT"

然后在SQL任务中将SQLSourceType更改为Variable

感谢大家的帮助。

1 个答案:

答案 0 :(得分:0)

有时奇怪。但是如果我们创建全局临时表(## TempT)

就可以解决