我正在尝试创建一个临时表,并将数据插入到foreach循环容器内的执行SQL任务中的临时表中。
以下是sql任务
IF OBJECT_ID('TEMPDB.DBO.#TEMP') IS NOT NULL
DROP TABLE #TEMP
GO
CREATE TABLE #TEMP
( ... );
INSERT INTO #TEMP
SELECT (...)
FROM table t1 INNER JOIN table2 t2
ON t1.id = t2.table1_id
WHERE t1.value = ?
我想在WHERE子句中有一个参数,但每当我尝试添加它时,我都会收到此错误。
“多步OLE DB操作生成错误。检查每个OLE DB状态值,如果可用。没有工作。”。可能的失败原因:查询问题,“ResultSet”属性设置不正确,参数设置不正确或连接未正确建立。“
当我在Where子句中对值进行硬编码时,插件可以完美地工作。
我的参数映射出错了什么?
此外,我无法使用存储过程。
答案 0 :(得分:1)
只需转到Expressions
标签,如屏幕截图您提供的所示,并将以下表达式写入SqlStatmentSource
属性
"IF OBJECT_ID('TEMPDB.DBO.#TEMP') IS NOT NULL
DROP TABLE #TEMP
GO
CREATE TABLE #TEMP
( ... );
INSERT INTO #TEMP
SELECT (...)
FROM table t1 INNER JOIN table2 t2
ON t1.id = t2.table1_id
WHERE t1.value = '" + @[User::Where_Variable] + "'"
答案 1 :(得分:0)
使用整个SQL脚本填充变量,并在执行SQL任务中将该变量用作SQLSourceType。