2016-03-22 24 views
0

いいえ、 だから、ここでは取引があります。私は、フラットテキストファイルを取って、それを掃除し、SSISパッケージのSQLテーブルに入れています。この表には従業員番号が含まれます。次に、別のサーバー、データベース、テーブルに接続して従業員の電子メールアドレスとその従業員番号を従業員番号に基づいて調べる必要があります(この電子メールは変更可能であり、会社はこの従業員データテーブルの1つのマスターコピー、このテーブルのコピーを取ることはオプションではありません)。私はスーパーバイザー番号を持って自分のメールを調べる必要があります。これらの2つの電子メールは、単一の構造化電子メールを送信する必要があります。これは電子メールアドレスのローカルコピーを取ることなく可能ですか?これは、1ヶ月に500以上の従業員番号に対して行われる必要があります。私はこの頭の中で頭を包んでいるようには見えない。SSIS別のテーブルの参照

+0

データフロータスクでLookupコンポーネントまたはMerge Joinコンポーネントを試した後、送信先としてレコードセットを選択し、メール送信用のレコードセットタスクをループしましたか。 – cqi

+0

私は試しましたが、このDBのデータを保存できないため、このデータを履歴に保存できません。 – user2178477

答えて

0

両方のテーブルをソース・コンポーネントとして開始し、従業員番号のマージ結合を実行して2つの表の行を照合します。

スーパーバイザの電子メールを取得するために、これらのレコードを3番目のソースコンポーネントと照合するのと同じことです。

+0

それで、どのようにループして電子メールを送信するのですか? – user2178477

+0

複数の方法があります。個人的には、すべてのレコードをターゲットサーバー上のステージングテーブルにインポートし、そのテーブルを繰り返し処理してメールを送信するストアドプロシージャを呼び出します。 SSISからメールを送信する必要がある場合は、オブジェクト変数に値を入力してループすることができます。フラットファイル。またはスクリプトコンポーネント。私が言ったように、複数の方法。 –

+0

こんにちはタブ これは私がやったことです。レコードをステージングテーブルに置き、ステージングテーブルからビューを取得したSQLデータベースと他のデータベース内のテーブルをリンクします。このビューはオブジェクト変数に呼び出され、他の変数は電子メールの送信に使用されます。すべてのデータの処理が完了すると、そのデータは履歴テーブルに格納され、ステージングテーブルは切り捨てられます。 – user2178477

関連する問題