У меня есть таблица базы данных с основным столбцом, определенным как:
ID bigint identity primary key
У меня также есть столбец текста MiddlePart
. Я пытаюсь создать полнотекстовый индекс, как так:
CREATE FULLTEXT INDEX ON domaining.dbo.DomainName
(
MiddlePart
Language 0X0
)
KEY INDEX ID ON domaincatalog
WITH CHANGE_TRACKING AUTO
Я получаю эту ошибку:
'Идентификатор' не является допустимым индексом для осуществления ключа полнотекстового поиска. Ключ полнотекстового поиска должен быть уникальным, не допускающим NULL-значения индексом отдельного столбца, который не в режиме офлайн, не определяется на недетерминированном или неточном несохраненном вычисляемом столбце, не имеет фильтра и имеет максимальный размер 900 байтов. Выберите другой индекс для полнотекстового ключа.
Что я делаю неправильно?
После KEY INDEX необходимо указать имя индекса, а не столбца. Чтобы найти имя индекса по идентификатору столбца, введите sp_help DomainName
, и в этой таблице появится список индексов. PK будет называться как-то вроде PK_xxxxx. Используйте это имя индекса вместо «ID».
Вместо указания имени столбца укажите имя индекса. Вы можете найти имя индекса первичного ключа, например:
select name from sysindexes where object_id('DomainName') = id
Затем вы можете создать полнотекстовый индекс, например:
CREATE FULLTEXT INDEX ON DomainName
(
MiddlePart
Language 0X0
)
KEY INDEX PK__DomainName__40E497F3 ON domaincatalog
WITH CHANGE_TRACKING AUTO