0

2つのSQLサーバーデータベースがあります。ソースサーバーには、外部システムから入力されたデータと、リモートサーバー上の宛先データベース(Webアプリによって使用される)があります。ソーステーブルから宛先(列名は異なります)に列をマップし、同期を維持するためにデータを入力するSSISパッケージがあります。

ここで、両方のデータベースが同期していることを確認するために、レコード数を示すSPがあり、一部の親子関係では、各親レコードの子数(つまり、ブランドごとのアイテム数)が表示されます。誰かが両方のサーバーにログオンし、SPを実行して、データを手動で取得する必要があります。次に、結果を比較して、両方のデータベースが同期していることを確認します。

現在、このプロセスを自動化するために、次のことを行いました-

  1. 宛先サーバーを「リンクサーバー」として追加します
  2. 「 EXECmsdb.dbo。sp_send_dbmail」を「@attach_query_result_as_file=1」と一緒に使用します
  3. 両方のサーバーの電子メールSPを実行するSSISジョブを作成します

したがって、これは、クエリ結果が添付された2つの電子メールを取得する方法です。次に、テキストファイルを比較すると、dbsyncチェックが完了します。

リンクサーバーとして宛先サーバーにアクセスできるようになったので、これを改善できると思います。初めてなので、経験豊富な人にアプローチを共有してもらいたいと思います。おそらく、リンクサーバーとの結合クエリを超えたものです。

4

2 に答える 2

1

リンクサーバーとしてサーバーにアクセスできるため、クエリを直接実行してデータを比較できます。

こちらをご確認ください

このクエリ結果に基づいてメールを送信するようにSSISジョブを変更できます。

于 2012-08-11T21:36:29.553 に答える
0

私は次のクエリを使用しています。これは単純なバージョンであり、両方の違いがあります-

(Select s.Title, s.Description from ERPMasterBrand as s   EXCEPT
Select d.Title, d.Description from MasterBrand as d)
UNION
(Select s.Title, s.Description from MasterBrand as s      EXCEPT
Select d.Title, d.Description from ERPMasterBrand as d)

より良い提案はありますか?私はテストしましたが、それは望ましい結果をもたらします-私が自分の解決策によって誤った方向に導かれていないことを願っています:-)。

于 2012-08-13T15:21:51.180 に答える