9

既存のストアド プロシージャを使用して挿入する必要があるデータを移行しています。ストアド プロシージャには、パラメータと、挿入された行の ID の (select ステートメントからの) 戻り値があります。SSIS の OLE DB コマンド内で、列の値をパラメーターとして渡すストアド プロシージャを呼び出すことができます。通常、ストアド プロシージャの出力パラメーターを使用して "id" 出力を処理します。しかし、プロシージャがselectを使用してid値を返す場合、これを戻り値でどのように処理できるかわかりません。これまでに使用したものの例を次に示しますが、選択から返された値を取得する必要があります。

exec dbo.uspInsertContactAddress
@Address = ?,
@ContactID = ?,
@DeliveryMethodId = ?,
@ID = ? output,
@Version = ? output
4

4 に答える 4

14

私がこれを行うことができるとわかった方法は、実際には非常に簡単でした:

exec ? = dbo.StoredProc @param = ?, @param2 = ?

@RETURN_VALUE が Available Destination Columns に表示されます

于 2009-02-04T13:01:35.417 に答える
0

私は常に、SQL 実行タスク内でパラメーター マッピングを使用して多くの成功を収めてきました。SQL ステートメントは "EXEC nameofstoredproc ?, ? OUTPUT" で、パラメーターの場所を指定する疑問符と、パラメーターが出力の場合は OUTPUT を指定します。

適切な変数名、方向 (入力、出力、ReturnValue)、およびデータ型を使用して、マッピングでパラメーターを指定します。ストアド プロシージャは結果セットを介して必要なデータを返すため、変数が ID とバージョンを収集する方向を ReturnValue として指定します。それはあなたにとってうまくいくはずです。

于 2009-01-29T23:39:00.407 に答える