使用 Execute SQL 任务的参数映射
Parameter Mapping using an Execute SQL Task
我正在尝试创建一个临时 table 并将数据插入 foreach 循环容器内的执行 SQL 任务中的临时 table。
这是 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 子句中有一个参数,但每当我尝试添加它时,我都会收到此错误。
"Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done."。可能失败原因:查询有问题,"ResultSet" 属性设置不正确,参数设置不正确,或者连接没有正确建立。"
当我对 Where 子句中的值进行硬编码时,插入工作完美。
我的参数映射哪里做错了?
这是我的参数映射设置
而且我无法使用存储过程。
用整个 SQL 脚本填充一个变量,并在执行 SQL 任务中使用该变量作为 SQLSourceType。
只需转到 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] + "'"
我正在尝试创建一个临时 table 并将数据插入 foreach 循环容器内的执行 SQL 任务中的临时 table。
这是 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 子句中有一个参数,但每当我尝试添加它时,我都会收到此错误。
"Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done."。可能失败原因:查询有问题,"ResultSet" 属性设置不正确,参数设置不正确,或者连接没有正确建立。"
当我对 Where 子句中的值进行硬编码时,插入工作完美。
我的参数映射哪里做错了?
这是我的参数映射设置
而且我无法使用存储过程。
用整个 SQL 脚本填充一个变量,并在执行 SQL 任务中使用该变量作为 SQLSourceType。
只需转到 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] + "'"