同一个表上的多个全文索引

Pet*_*ijn 5 sql-server azure-sql-database

我有一个包含不同语言列的表。我想在这张表上建立多个全文索引,每种语言一个。在 MsSQL (Azure) 中甚至有可能吗?我有以下代码:

IF NOT EXISTS (SELECT 1 FROM sys.fulltext_catalogs  WHERE NAME = 'BlaBlaFullTextCatalog')
    CREATE FULLTEXT CATALOG BlaBlaFullTextCatalog AS DEFAULT;

CREATE FULLTEXT INDEX ON [IDX_c7296e1d-8cea-40f7-9204-8f017b1e14a8_tmp] ([OBJ_FreeText_de-DE] LANGUAGE 1043) KEY INDEX [PK_bbca2bbb-a84e-4bd2-b908-92c5329652a5] ON [BlaBlaFullTextCatalog]
    WITH CHANGE_TRACKING = AUTO;

CREATE FULLTEXT INDEX ON [IDX_c7296e1d-8cea-40f7-9204-8f017b1e14a8_tmp] ([OBJ_FreeText_nl-NL] LANGUAGE 1043) KEY INDEX [PK_bbca2bbb-a84e-4bd2-b908-92c5329652a5] ON [BlaBlaFullTextCatalog]
    WITH CHANGE_TRACKING = AUTO;

ALTER FULLTEXT INDEX ON [IDX_c7296e1d-8cea-40f7-9204-8f017b1e14a8_tmp] ENABLE;

ALTER FULLTEXT INDEX ON [IDX_c7296e1d-8cea-40f7-9204-8f017b1e14a8_tmp] START FULL POPULATION;
Run Code Online (Sandbox Code Playgroud)

但它抛出以下错误:

表或索引视图“IDX_c7296e1d-8cea-40f7-9204-8f017b1e14a8_tmp”的全文索引已经创建。

Abh*_*hek 4

根据MSDN -

根据 MSDN - 每个表或索引视图仅允许有一个全文索引,并且每个全文索引适用于单个表或索引视图。

因此,您收到的错误清楚地表明该IDX_c7296e1d-8cea-40f7-9204-8f017b1e14a8_tmp对象已经有一个全文索引(您使用sql statement代码块中的第二个索引创建了该索引),并且无法在同一对象上创建另一个全文索引。