変更追跡を使用して、SQL Server から Azure SQL データベースにデータを増分コピーしようとしています。Microsoft Azure ドキュメントのチュートリアルに従いましたが、これを多数のテーブルに実装するときに問題が発生しました。
コピー アクティビティのソース部分では、最後の変更追跡バージョン以降に更新、挿入、または削除されたすべてのレコードの変更テーブルを提供するクエリを使用できます。このテーブルは次のようになります
PersonID Age Name SYS_CHANGE_OPERATION
---------------------------------------------
1 12 John U
2 15 James U
3 NULL NULL D
4 25 Jane I
PersonID がこのテーブルの主キーです。
問題は、コピー アクティビティがデータを Azure SQL データベースに追加することしかできないため、レコードが更新されると、重複する主キーが原因でエラーが発生することです。Azure SQL Database 上のテーブルにデータをマージするストアド プロシージャをコピー アクティビティに使用させることで、この問題に対処できますが、問題はテーブルの数が多いことです。
プレコピー スクリプトを使用して、Azure SQL データベースで削除および更新されたレコードを削除したいのですが、その方法がわかりません。コピーするテーブルごとに個別のストアド プロシージャと対応するテーブル タイプを作成する必要がありますか? または、コピー前スクリプトで変更追跡テーブルに基づいてレコードを削除する方法はありますか?