我有一个包含不同语言列的表。我想在这个表上创建多个全文索引,每个语言都有一个。它甚至可以在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;
但它会引发以下错误:
表或索引视图的全文索引 ' IDX_c7296e1d-8cea-40f7-9204-8f017b1e14a8_tmp'已经过了 创建
答案 0 :(得分:2)
根据MSDN -
根据MSDN - 每个表或索引只允许一个全文索引 视图,每个全文索引适用于单个表或索引 图。
因此,您明确得出的错误是IDX_c7296e1d-8cea-40f7-9204-8f017b1e14a8_tmp
对象已经有一个全文索引(使用代码块中的第二个sql statement
创建)和另一个全文索引在同一个对象上无法创建。
答案 1 :(得分:1)
表的索引名称必须是唯一的。您正在使用重复的名称。