同步组目前处于预览阶段,我已经为 Azure sql 数据库设置了一个同步组,以单向同步到本地 sql 2014 实例。
设置过程进展顺利,包括在我们的服务器上安装本地同步代理。没有错误。
问题在于选择要同步的表。选择所有这些都立即失败,因为当我单击“同步”时,出现错误:
所以,我只选择了一张表,当时就成功了。我一一重复此操作,确保取消选择 xml 列,因为这些列不受支持,直到最后一个结果表,该列失败了。
知道为什么这个表会导致错误吗?
更新
我已将问题定位到结果 PlayerId。当我取消选择此字段时,启动同步时不会显示任何错误(但这不起作用,因为它的 FK 不能为空)。主键和外键的数据类型相同。
最佳答案
一位 Microsoft 工程师检查了我们这边的跟踪,发现当您尝试触发同步时出现问题。实际出现的错误消息是:
[dbo].[StrokeplayRoundResults] 和 [dbo].[Results] 之间存在循环依赖关系。
目前,SQL Data Sync 不支持循环依赖关系。此行为是设计使然。这背后的原因是 SQL 数据同步试图找到正确的顺序来插入不违反外键约束的数据。如果存在循环依赖,则不存在这样的顺序。
微软很快就会显示更明确的错误消息,而不是“处理请求时发生意外错误”。
希望这有帮助。感谢您的耐心等待。
关于Azure SQL 同步组到本地错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47528767/