0

ビルドしようとしている ssis パッケージのデータ フロー タスクに問題があります。パッケージの目的は、vpn 接続を介して、データのソースを含む遠隔サーバーへの接続を使用して、ローカル サーバーにあるテーブルを更新することです。

完全に再ダウンロードされたテーブルには問題はありません。

ただし、一部のテーブルは実際に更新する必要があります。つまり、再ダウンロードされていないということです。これらのテーブルごとに、ローカル サーバー (int YYYMMDD 型) の日付列の最大値を確認し、その日付以降に追加されたデータのみをダウンロードするようにパッケージに要求する必要があります。

スカラー (ex の場合は @MAXDATE) を使用することを考えましたが、問題は、このスカラーをローカル サーバーとのセッションで宣言する必要があり、OLE DB ソース タスクの条件として使用できないことです。今回は遠隔サーバーとの新しいセッション。

離れたサーバーのデータベースを表示してインポートすることしかできません。その上にテーブルを作成する方法はありません。

十分に明確であることを願っています。この問題を解決するためのヒントはありますか?

前もって感謝します。

オズグル

4

1 に答える 1

0

これは、実行 SQL タスク、データ フロー タスク、および 1 つの変数を使用して簡単に行うことができます。ローカル システムで値が見つからない場合に備えて、エラー チェックを追加することも考えられますが、それは何がうまくいかないかによって大きく異なります。

VS2008を想定

タイプ datetime のパッケージ レベル変数を宣言します。適切なデフォルト値を指定してください。

適切な日付値を返すクエリを使用して、SQL 実行タスクを作成します。プロパティ ウィンドウの最初のページで、結果セットが「単一行」に設定されていることを確認します。[結果セット] ページで、日付列をパッケージ変数にマップします。

データ フロー タスクを作成します。OLE DB データ ソースで、クエリを記述して、受信する日付の値に疑問符を含めます。"および MaxDate>?". [パラメータ] ボタンをクリックすると、「Parameter0」をパッケージ レベルの変数にマップできるポップアップが表示されます。

于 2013-05-20T22:12:10.033 に答える