【发布时间】:2018-08-02 00:51:05
【问题描述】:
我们正在尝试设置 Azure 数据库同步组,以将我们的数据从本地服务器复制到 Azure SQL 数据库。这是迁移到 Azure 的第一步。
同步组和同步代理均已设置完毕。 当我们按下“同步”按钮时,我们会收到以下错误:
触发器同步失败:无法执行数据同步操作:表“[dbo].[DocumentTypeDocumentVariables]”没有聚集索引。
此表没有聚集索引,但有非聚集唯一主键索引。
- 我们尝试添加聚集索引,但出现了同样的错误。
- 我们尝试删除非聚集 PK 索引并创建一个唯一的聚集 PK 索引,但这给了我们同样的错误。
可能出了什么问题?
【问题讨论】:
-
我在源代码“docs.microsoft.com/en-us/azure/sql-database/…”中读到了以下限制 表不能有不是主键的标识列。对象(数据库、表和列)的名称不能包含可打印字符句点 (.)、左方括号 ([) 或右方括号 (])。不支持 Azure Active Directory 身份验证。此表没有带有标识的 PK。也许这就是问题所在。
-
当您删除非聚集 PK 索引并创建唯一聚集 PK 索引时,您是否从头开始重试这些步骤?我的意思是重新创建组和代理,然后再次尝试同步。我以前遇到过同样的错误,在我将索引更改为聚集索引并从头开始重试后它就起作用了。似乎数据同步功能现在只支持具有集群 PK 索引的数据库,但 official doc 说“每个表必须有一个主键”而不是“必须有一个集群 PK”。
标签: azure azure-sql-database database-replication clustered-index non-clustered-index