Как создать полнотекстовый индекс для представления - PullRequest
0 голосов
/ 27 июня 2018

Я хотел бы создать индекс FULLTEXT для своего представления, но не могу и не вижу, в чем проблема.

Мой взгляд с уникальным кластерным индексом:

-- View Creation
CREATE VIEW View_School_Degree WITH SCHEMABINDING AS
    SELECT
        s.Id_School [School Id]
        ,s.Name [School Name]
        ,s.Type
        ,s.Code
        ,CAST(CONCAT(s.Address1, N' ',s.Address2  , N', ', s.Address3, N' ', s.Address4) AS nvarchar(500)) [Postal Address]
        ,s.Email
        ,d.Id_Degree [Degree Id]
        ,d.Title [Degree Title]
        ,d.[Option] [Degree Option]
        ,CAST(CONCAT(d.Code, N' / ', d.[Option]) AS [nvarchar]) [Degree / Option]
        ,sd.Capacity
    FROM dbo.School_Degree sd
    JOIN dbo.School s ON s.Id_School = sd.Id_School
    JOIN dbo.Degree d ON d.Id_Degree = sd.Id_Degree
GO

-- INDEX Creation
CREATE UNIQUE CLUSTERED INDEX [IX_View_School_Degree_Identifier] ON dbo.View_School_Degree
(
    [School Id] ASC,
    [Degree Id] ASC
)

Создание моего индекса FULLTEXT с каталогом FULLTEXT:

CREATE FULLTEXT CATALOG SchoolCatalog
WITH ACCENT_SENSITIVITY = OFF
AUTHORIZATION dbo;
GO

CREATE FULLTEXT INDEX ON dbo.View_School_Degree
(
    [School Name] LANGUAGE 1036
    ,[Degree Title] LANGUAGE 1036
    ,[Postal Address] LANGUAGE 1036
)
KEY INDEX IX_View_School_Degree_Identifier
ON SchoolCatalog
WITH STOPLIST OFF;
GO

Я получаю эту ошибку:

'IX_View_School_Degree_Identifier' не является допустимым индексом для применения ключа полнотекстового поиска. Ключ полнотекстового поиска должен быть уникальным индексом, который не принимает значение Null, имеет только один столбец, который не находится в автономном режиме, не определен для вычисляемого недетерминированного или неточного непостоянного столбца, не имеет фильтра и имеет максимум размер 900 байт. Выберите другой индекс для полнотекстового ключа

1 Ответ

0 голосов
/ 27 июня 2018

Как видно из сообщения об ошибке, эта часть гласит:

IX_View_School_Degree_Identifier 'не является допустимым индексом .... имеет только один столбец

Однако ваш индекс состоит из двух столбцов. Вам необходимо создать новый индекс, который удовлетворяет этим требованиям

...