我有一个具有
之类的架构的表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]
当我尝试在此表上创建全文索引时。显示错误:
必须在此表/视图上定义唯一列。
有什么解决方法吗?谢谢
答案 0 :(得分:1)
首先,您没有并且不能在同一张表上定义2个PK。
您拥有2列PK,即您的PK密钥由2列组成。
但要求是
KEY INDEX index_name是唯一键索引的名称,位于 table_name。 KEY INDEX必须是唯一的,单键,不可为空 柱。为全文本唯一选择最小的唯一键索引 键。为了获得最佳性能,我们建议将整数数据类型用于 全文本密钥。
因此,您应该添加此单键唯一列。这可以只是枚举数(最简单的方法),也可以根据现有列进行定义,例如:
ArticleDefinitionId * 10000000000 + PropertyTypeId
(decimal(20,0)
)