Учитывая #, как мне узнать, в какой таблице и столбце он может быть найден?
Мне все равно, если это быстро, просто нужно работать.
sql-server
Аллен Лалонд
источник
источник
Ответы:
Это может помочь вам . - от Нараяны Вьяс. Он ищет все столбцы всех таблиц в данной базе данных. Я использовал это раньше, и это работает.
Это сохраненный процесс из вышеприведенной ссылки - единственное изменение, которое я сделал, - это замена временной таблицы табличной переменной, чтобы вам не приходилось каждый раз удалять ее.
источник
Если вам нужно выполнить такой поиск только один раз, то вы, вероятно, можете использовать любой из сценариев, уже показанных в других ответах. Но в противном случае я бы порекомендовал использовать ApexSQL Search для этого. Это бесплатное дополнение SSMS, и оно действительно сэкономило мне много времени.
Перед запуском любого из сценариев вы должны настроить его в зависимости от типа данных, которые вы хотите найти. Если вы знаете, что ищете столбец datetime, тогда нет необходимости искать по столбцам nvarchar. Это ускорит все запросы выше.
источник
Основываясь на ответе bnkdev, я изменил код Нараяны, чтобы искать все столбцы, даже числовые.
Он будет работать медленнее, но эта версия фактически находит все совпадения, а не только те, которые найдены в текстовых столбцах.
Я не могу отблагодарить этого парня достаточно. Спасли мне дни поиска вручную!
источник
Это мой независимый взгляд на этот вопрос, который я использую для своей работы. Он работает в SQL2000 и более поздних версиях, разрешает использование подстановочных знаков, фильтрацию столбцов и выполняет поиск по большинству обычных типов данных.
Описание псевдокода может быть
select * from * where any like 'foo'
Я не помещаю это в форму процесса, так как я не хочу поддерживать его на сотнях БД, и в любом случае это действительно для специальной работы. Пожалуйста, не стесняйтесь комментировать исправления ошибок.
источник
Я оптимизировал ответ Аллена Лалонда ( https://stackoverflow.com/a/436676/412368 ). Числовые значения по-прежнему поддерживаются. Должно быть примерно в 4-5 раз быстрее (1:03 против 4:30), протестировано на настольном компьютере с базой данных 7 ГБ. http://developer.azurewebsites.net/2015/01/mssql-searchalltables/
источник
Это мой способ решить этот вопрос. Протестировано на SQLServer2008R2
источник
Спасибо за действительно полезный скрипт.
Вам может потребоваться добавить следующую модификацию в код, если ваши таблицы имеют неконвертируемые поля:
Крис
источник
Недавно у меня было решение, которое я продолжал улучшать. Также ищет в столбцах XML, если велено, или ищет целочисленные значения, если предоставляет только целочисленную строку.
Источник: http://fullparam.wordpress.com/2012/09/07/fck-it-i-am-going-to-search-all-tables-all-collumns/
источник
Я однажды написал инструмент для себя, чтобы сделать именно это:
a7 SqlTools
Это бесплатно и с открытым исходным кодом:
ссылка на GitHub
источник
Здесь очень сладкое и маленькое решение:
==========================
источник
Другой способ, используя JOIN и CURSOR:
источник
Возможно, вам придется создать инвертированный индекс для вашей базы данных. Это гарантированно быстро.
источник
Предположим, если вы хотите получить всю таблицу с именем, имя столбца, содержащее время входа в базу данных, MyDatabase ниже приведен пример кода
источник
Если у вас установлен phpMyAdmin, используйте его функцию поиска .
Выберите базу данных.
Убедитесь, что вы выбрали DataBase, а не таблицу, иначе вы получите совершенно другой диалог поиска.
источник
источник
Для целей разработки вы можете просто экспортировать необходимые данные таблиц в единый HTML и выполнить прямой поиск по ним.
источник
Инструменты клиента базы данных (такие как DBeaver или phpMyAdmin ) часто поддерживают средства полнотекстового поиска по всей базе данных.
источник