SQL Azure で CDC(Change Data Capture)やChange Tracking - お だ のスペース でメモだけしてたので、少し試してみました。
Sync Framework を使って、SQL Azure 上で更新されたデータをオンプレミスの SQL Server に反映させて、SQL Server 側で変更の追跡(CDC や Change Tracking) を行う事は出来ました。
が、この方法だと 前回の同期 から 今回の同期 で変更された分しか追跡出来ません。対象のデータが何回更新されたかはわかりません。同期した時に、どのような値になっていたか?までしか追跡出来ないわけです。
これは、まあ仕方が無いかな〜と思います。
変更された際に通知出来たら何とかなるかな?と思い、SqlDependency クラス (System.Data.SqlClient) を使った SQL Server のクエリ通知 使えば出来るかと思ったけど、SQL Azure って Service Broker 未サポートだった。。
まだ無理かな〜。ちなみに、Service Broker/SQL Dependency 機能の追加要望はこちらから。Vote サイト と MS Connect に挙がってました。
Enable SQL Service Broker in SQL Azure – Customer Feedback for Windows Azure
Service Broker (at least SqlDependency support) in SQL Azure | Microsoft Connect