私が後のことを完全には解決しない回答で他の質問を見たことがありますか?SSISでOLE DBコマンド変換を使用して、新しい列として挿入された各行の結果のプライマリキーをすぐに取得します。すべて内の同じデータフロータスクです。 SSISで求められるのは、一般的な、組み込みの、かなり単純なものでなければならないようですね。SSIS行を挿入し、OLE DBコマンドを使用して結果IDを取得する
INSERT INTO dbo.MyReleaseTable(releaseDate)
OUTPUT ?=Inserted.id
VALUES (?)
だけ私が行う方法を見つけ出すことはできません。
だから、私にとって明白な最初の選択肢は、私はSELECT
を行うと、私のコマンドでOUTPUT
句を含めどこOLE DBコマンドを使用することですこれはOLE DBコマンド(出力あり)であり、不平を言っていません。私はこれを行うためにストアドプロシージャの使用について読んだので、私はこれを行うにはストアドプロシージャを使用する必要がありますか?
これはうまくいきません。スクリプト変換を使用して直接SQLを実行することはできますか?もしそれが私がしなければならないことであれば、カスタムコードとSSISブロックコンポーネントを使用する間の線がぼやけてしまい、SSISを投げ捨てて、コード内でETL全体を実行するように誘惑されます。
次に、SQLの実行タスクについて説明します。だから私は1つのデータフロータスク内で1つのデータフローを行うことはできませんか?私はそれを得ていますか?私は1つのデータフローを1つのデータフロータスク内に保持し、別々のタスク間で私の1つのフローを壊す必要はありません。
このシンプルなデータフローの目的がSSISに組み込まれていないことが判明したら、SSISのダンプを検討します。 Talendは無料のETLサービスを提供していますか?
これは私が知る必要があったものです。基本的に、SSISは機能が欠けているETLツールです。彼らは多くのことをしていますが、ADO.NET DBコマンドを実行できないようにするには、既存のブロック(スクリプトが必要またはデータフローを分割する必要があります)または入出力で入出力を行うことができないようにする必要がありますデータフローはフィーチャの観点からは失望しています。特に成熟したツールではそうです。 –