使用SQL数据同步到Azure时不支持的数据类型

时间:2014-08-29 16:50:27

标签: sql-server indexing azure-sql-database clustered-index azure-data-sync

我想使用SQL Data Sync将内部部署的SQL Server 2012 SP2数据库同步到Azure。 当我尝试进行同步时,我得到了"不支持的数据类型" ID_Index列的其中一个表上的错误:

Azure管理门户没有提供有关错误的进一步解释。 SQL Server Management Studio中的表设计:

表创建脚本:

CREATE TABLE [dbo].[FlightPlanData](
  [ID] [uniqueidentifier] NOT NULL CONSTRAINT [DF_FlightPlanData_ID]  DEFAULT (newid()),
  [Airline_ID] [int] NOT NULL,
  [FlightID_FK] [uniqueidentifier] NOT NULL,
  [FlightPlanID] [int] NOT NULL,
  [DateInserted] [datetime] NOT NULL CONSTRAINT [DF_FlightPlanData_DateInserted]  DEFAULT (getdate()),
  [Type] [varchar](20) NOT NULL CONSTRAINT [DF_FlightPlanData_Type]  DEFAULT (''),
  [FileName] [varchar](100) NOT NULL CONSTRAINT [DF_FlightPlanData_FileName]  DEFAULT (''),
  [ClientID_FK] [uniqueidentifier] NULL,
  [ID_Index] [int] IDENTITY(1,1) NOT NULL,
    CONSTRAINT [PK_FlightPlanData] PRIMARY KEY NONCLUSTERED ([ID] ASC))

CREATE CLUSTERED INDEX [IX_FlightPlanData] ON [dbo].[FlightPlanData]([ID_Index] ASC)

该表具有GUID主键,但它不是群集的,而是使用聚簇索引(ID_Index)。 我无法移除ID_Index列,我不想将其作为主键。有什么方法可以解决这个问题吗? 我听说Azure需要每个表的聚簇索引,但它不必是主键。那么这里的问题是什么?

1 个答案:

答案 0 :(得分:0)

表不能具有不是主键的标识列。这是SQL Data Sync的一般要求之一。有关详细信息,请访问this GitHub文档。