Почему я не могу создать этот полнотекстовый индекс SQL-сервера?

У меня есть таблица базы данных с основным столбцом, определенным как:

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 байтов. Выберите другой индекс для полнотекстового ключа.

Что я делаю неправильно?

23
задан Nathan Ridley 21 February 2010 в 18:08
поделиться

2 ответа

После KEY INDEX необходимо указать имя индекса, а не столбца. Чтобы найти имя индекса по идентификатору столбца, введите sp_help DomainName , и в этой таблице появится список индексов. PK будет называться как-то вроде PK_xxxxx. Используйте это имя индекса вместо «ID».

36
ответ дан 29 November 2019 в 01:55
поделиться

Вместо указания имени столбца укажите имя индекса. Вы можете найти имя индекса первичного ключа, например:

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
5
ответ дан 29 November 2019 в 01:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: