7

変更追跡を使用して、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 データベースで削除および更新されたレコードを削除したいのですが、その方法がわかりません。コピーするテーブルごとに個別のストアド プロシージャと対応するテーブル タイプを作成する必要がありますか? または、コピー前スクリプトで変更追跡テーブルに基づいてレコードを削除する方法はありますか?

4

2 に答える 2