web-dev-qa-db-ja.com

NULLをSSIS変数に渡す

構成テーブルのパラメーターを使用してプロシージャを実行するパッケージを構築しています。

2つのSQL実行タスクボックスを作成しました。 1つは、構成テーブルからSSIS変数を設定します。 2番目は、これらの変数を使用してプロシージャを実行します。

私は次の行動に直面しています。整数変数はデフォルト値として0を持ち、空の文字列を文字列化します。構成テーブルからNULLを取得した後でも、これらの変数は値を保持します。

この動作を変更して、SQL ServerのNULLロジックをデフォルトの「値」として適用したり、構成テーブルから取得したNULLを有効にしてデフォルト値を上書きしたりするにはどうすればよいですか?

5

SSISは、組み込み変数のnull許容型をサポートしていません。つまり、これまでに経験したように、SQLのnull整数は、SSIS変数として割り当てられるとゼロになります。それらは休憩ですが、回避策があります。

ソーステーブルをNULLに保つために、「SSIS変数への割り当て」全体を完全にスキップする必要があります。 OLE DBコマンド をご覧ください。これは、データフローレベルで動作することを除いて、SQL実行コマンドに似ています。実行中の行ごとに1つのSQLコマンドを操作します。これの利点は、SQL結果セットをSSIS変数にマップする必要がないことです。データフロー内での作業はSQL出力とSQL入力です。SELECT TOP 1 * FROM MyConfigTable into OLE DBコマンド。OLE DBコマンドコンポーネント内で、ResultSet列をSPパラメータに割り当てることができます。 。

私はそれが変更であることを知っていますが、2つのSQL実行タスクから続けてOLE DBコマンドコンポーネントを含むデータフローに移動することは、あなたが望んでいることだと思います。頑張ってください!

3
Troy Witthoeft