Мне нужно создать запрос sqlserver, который, если текстовый столбец имеет полнотекстовый индекс, будет использоваться, если нет, то запрос будет понижен до O (N²) подхода LIKE '%word%'
?
Я полагаю, что ответ будет примерно таким:
IF has_full_text_index('mycolumn')
select mytable_id from mytable where contains(mycolumn, 'word')
ELSE
select mytable_id from mytable where mycolumn like '%word%'
ENDIF
Запрос будет сгенерирован программой. В запросе всегда будет только одно слово для сопоставления. Проверка на наличие полнотекстового индекса в столбце должна быть быстрой.