2015-03-17 4 views
0

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

SELECT * 
FROM Table1 
WHERE Title LIKE '%Text%' 

UNION 

SELECT * 
FROM Table2 
WHERE Title LIKE '%Text%'` 

Однако мой вопрос есть более эффективный способ пойти об этом, как мне нужно искать десятки ТПС. Спасибо за любую помощь, которую вы можете дать!

ps Система, которую я использую, поддерживает большинство диалектов, но предпочла бы, чтобы это было просто с SQL Server, так как это то, к чему я привык.

+1

Рассмотрите возможность использования полного текстового индекса в таблицах. –

+0

Итак, решение не в другом типе запросов? –

ответ

0

Существует сценарий SP, который вы можете найти в Интернете под названием SearchAllTables (http://vyaskn.tripod.com/search_all_columns_in_all_tables.htm).

Когда вы вызываете его в строке, он возвращает таблицы и столбцы, а также полную строку.

Вы можете изменить его, чтобы работать с другими типами данных довольно легко. Это фантастический ресурс для задач, подобных вашим.

+0

Спасибо за совет - здесь не применимо, поскольку я использую систему, которую вы можете запросить, но спасибо, поскольку я могу использовать ее в будущем;) –

+0

Это неудачно, Томас. Вы можете вытащить запросы из SP и жесткого кода, которое вы ищете. Таким образом, вы просто запускаете серию выбранных операторов. – tromik