我正在尝试使用更改跟踪将数据从 SQL Server 增量复制到 Azure SQL 数据库。我按照教程进行操作,但在为大量表实施此操作时遇到了一些问题。
在复制活动的源部分中,我可以使用一个查询,该查询为我提供了自上次更改跟踪版本以来更新、插入或删除的所有记录的更改表。这张桌子看起来像
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 数据库上的表中的存储过程来解决此问题,但问题是我有大量表。
我希望预复制脚本删除 Azure SQL 数据库上已删除和更新的记录,但我不知道如何执行此操作。我是否需要为要复制的每个表创建单独的存储过程和相应的表类型,或者预复制脚本是否可以根据更改跟踪表删除记录?