2017-06-09 1 views
2

一時テーブルを作成し、foreachループコンテナ内でSQL実行タスク内の一時テーブルにデータを挿入しようとしています。Execute 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句で値をハードコードすると、挿入が完全に機能する。

私は私のパラメータマッピングに間違ってやっている何

?ここ

は私のパラメータマッピングの設定です またenter image description here

私が保存されたを使用することはできませんよ手順。

答えて

1

だけ

"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] + "'" 

enter image description here

+0

感謝のスクリーンショットに示すように、あなたがを提供Expressionsタブに移動し、SqlStatmentSourceプロパティに次の式を書きます!これは多くの助けと私はそれを働かせた。私はドロップステートメントを別のSQLタスクに移動する必要がありました。 –

+0

@DericPlummerは喜んでお手伝いします – Hadi

0

SQLスクリプト全体に変数を設定し、その変数をSQLの実行タスクでSQLSourceTypeとして使用します。

関連する問題