在具有2个主键的表上创建全文索引时出现问题

时间:2018-11-21 07:54:22

标签: sql-server full-text-search

我有一个具有

之类的架构的表
CREATE TABLE [ArticleDefinitionProperty](
    [ArticleDefinitionId] [int] NOT NULL,
    [PropertyTypeId] [int] NOT NULL,
    [PropertyValue] [varchar](max) NOT NULL,
 CONSTRAINT [PK_ArticleDefinitionProperty] PRIMARY KEY CLUSTERED 
(
    [ArticleDefinitionId] ASC,
    [PropertyTypeId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 100) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

当我尝试在此表上创建全文索引时。显示错误:

  

必须在此表/视图上定义唯一列。

有什么解决方法吗?谢谢

1 个答案:

答案 0 :(得分:1)

首先,您没有并且不能在同一张表上定义2个PK。

您拥有2列PK,即您的PK密钥由2列组成。

但要求是

  

KEY INDEX index_name是唯一键索引的名称,位于   table_name。 KEY INDEX必须是唯一的,单键,不可为空   柱。为全文本唯一选择最小的唯一键索引   键。为了获得最佳性能,我们建议将整数数据类型用于   全文本密钥。

因此,您应该添加此单键唯一列。这可以只是枚举数(最简单的方法),也可以根据现有列进行定义,例如: ArticleDefinitionId * 10000000000 + PropertyTypeIddecimal(20,0)

相关问题