SELECT u.Id FROM Users u WHERE FREETEXT((FirstName,Lastname,MiddleName),'')
UNION
SELECT c.AId FROM Certification c WHERE FREETEXT(*,'')
UNION
SELECT ad.AId FROM ApplicantDetails ad WHERE FREETEXT(*,'')
UNION
SELECT eb.AId FROM EducationalBackground eb WHERE FREETEXT(*,'')
UNION
SELECT ed.AId FROM EmploymentDetails ed WHERE FREETEXT(*,'')
UNION
SELECT e.AId FROM Expertise e WHERE FREETEXT(*,'')
UNION
SELECT ge.AId FROM GeographicalExperience ge WHERE FREETEXT(*,'')
UNION
SELECT pd.AId FROM ProjectDetails pd WHERE FREETEXT(*,'')
UNION
SELECT r.AId FROM [References] r WHERE FREETEXT(*,'')
UNION
SELECT t.AId FROM Training t WHERE FREETEXT(*,'')
ответ
Вы не можете иметь объединения в индексированном представлении или FREETEXT, есть больше ограничений, вот неполный список
Выражение на колонке, используемой в предложениях GROUP BY или выражение на результаты совокупности.
Производная таблица.
Общее выражение таблицы (CTE).
Функции рядов.
UNION, КРОМЕ ИЛИ ИНТЕРЕСНЫЕ операторы.
Полнотекстовые предикаты CONTAINS или FREETEXT.
Подзапросы.
Наружный или самостоятельный присоединение.
TOP пункт.
ORDER BY clause.
КРАСОТА DISTINCT.
Смотрите здесь для получения дополнительной информации http://msdn.microsoft.com/en-us/library/ms191432.aspx
Один из способов обойти это использовать хранимую процедуру вместо
Вы не можете иметь союзы в индексированном представлении. Тем не менее, вы можете повторно разложить запрос как серию объединений. Кроме того, вы не можете использовать FREETEXT с индексированными представлениями. Вы можете получить тот же эффект, назвав столбцы и используя LIKE.
Альтернативой использованию индексированного представления является создание нормальной таблицы и использование триггеров для каждой из исходных таблиц, чтобы обновить ее.
Фактически я использовал LIKE в последнее время, но я не доволен результатами, если вы ищете более миллиона записей, которые я должен сказать LIKE не рекомендуется использовать вместо этого, поэтому я перехожу к полнотекстовому поиску – user335160
любые другие предложения будут очень оценивается ... – user335160
Если представление было проиндексировано с помощью LIKE, затраты будут потрачены на то, чтобы строки были вставлены или удалены. Нет смысла использовать индексацию полного текста для поддержки индекса ANOTHER в индексированном представлении. –
нормально, есть ли у вас какие-либо другие варианты для изменения запроса выше? Запрос используется для поиска ключевых слов в разных таблицах. – user335160
использовать хранимую процедуру – SQLMenace
На самом деле у меня есть SP для поиска по ключевым словам, эта часть является частью поиска по ключевым словам, поэтому все, что мне нужно сейчас, это воссоздать запрос для поиска вместо указанного выше или другое другое решение, предоставленное кем-либо еще. .. – user335160