该语法不适用于 Azure Synapse Analytics 专用 SQL 池,您将收到以下错误:
消息 103010,级别 16,状态 1,第 1 行解析错误:第 2 行,列:
40: 'WITH' 附近的语法不正确。
Msg 104467, Level 16, State 1, Line 1 强制的唯一约束是
不支持。要创建非强制唯一约束,您必须
在语句中包含 NOT ENFORCED 语法。
编写此语法的方法是使用ALTER TABLE 添加非聚集和非强制主键,例如
ALTER TABLE [dbo].[DimProductCategory]
ADD CONSTRAINT [PK_DimProductCategory_ProductCategoryKey]
PRIMARY KEY NONCLUSTERED ( [ProductCategoryKey] ) NOT ENFORCED;
但是由于该表是一个维度,我还建议将其分布更改为REPLICATE,您必须在表定义中执行此操作。所以整个声明会是这样的:
CREATE TABLE [dbo].[DimProductCategory](
[ProductCategoryKey] [int] IDENTITY(1,1) NOT NULL UNIQUE NOT ENFORCED,
[ProductCategoryAlternateKey] [int] NULL,
[EnglishProductCategoryName] [nvarchar](50) NOT NULL,
[SpanishProductCategoryName] [nvarchar](50) NOT NULL,
[FrenchProductCategoryName] [nvarchar](50) NOT NULL
)
WITH (
DISTRIBUTION = REPLICATE,
CLUSTERED INDEX( [ProductCategoryKey] )
)
这将是您在实验室中转换其余语法的一个很好的练习。外键也不起作用。