Операции FULLTEXT над производной таблицей - PullRequest
2 голосов
/ 14 января 2011

В моей базе данных SQL Server 2008 RC2 у меня есть таблица T с полнотекстовым индексом, определенным в столбце FT. Я пытаюсь получить таблицу, содержащую столбец FT, а затем выбрать из этой производной таблицы, используя полнотекстовую операцию следующим образом:

SELECT ft_alias FROM
  (SELECT ft AS ft_alias FROM t) t_alias
WHERE CONTAINS(ft_alias, 'abc')

Но это выдает сообщение об ошибке:

Невозможно использовать CONTAINS или FREETEXT предикат в столбце 'ft_alias', потому что он не полнотекстовый.

Ни за что! Оптимизатор не может понять, что в этом столбце есть полнотекстовая индексация? Я нахожу это удивительным, потому что может и будет использовать индекс для столбцов со стандартным индексом.

Я понимаю, что в этом простом случае я могу просто переписать запрос без производной таблицы, но наше приложение генерирует произвольно сложный SQL из пользовательских запросов, а использование производных таблиц значительно упрощает нам генерацию правильного SQL.

Неужели нет никакого способа обойти это?

...