В моей базе данных 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.
Неужели нет никакого способа обойти это?