Проблемы при создании полнотекстового индекса для таблицы с 2 первичными ключами - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть таблица со схемой типа

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 голосов
/ 21 ноября 2018

Прежде всего, у вас нет и не может быть 2 PK, определенных в одной и той же таблице.

То, что у вас есть, это 2 столбца-PK, т.е. ваш ключ PK состоит из 2 столбцов.

Но обязательным условием является

KEY INDEX index_name Имя уникального ключа индекса для table_name.КЛЮЧЕВОЙ ИНДЕКС должен быть уникальным, одноклавишным , необнуляемым столбцом.Выберите наименьший индекс уникального ключа для полнотекстового уникального ключа.Для достижения максимальной производительности мы рекомендуем использовать целочисленный тип данных для полнотекстового ключа.

Поэтому необходимо добавить этот уникальный столбец single-key .Это может быть просто перечислитель (самый простой способ) или вы можете определить его на основе существующих столбцов, например, так: ArticleDefinitionId * 10000000000 + PropertyTypeId (decimal(20,0))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...