Как сделать поиск по всем таблицам базы данных SQL Server
Как я ищу текст по всей базе данных: мой любимый скрипт
Когда нужно быстро найти какую-то строку во всех таблицах базы, я использую эту хранимую процедуру. Она перебирает все таблицы, все текстовые колонки и возвращает результат. Спасла меня не раз.
Что делает этот код
Простыми словами — ищет вашу фразу везде: в названиях, описаниях, комментариях. Даже в числах, если они записаны как текст.
Как этим пользоваться
Просто вызываете процедуру и передаёте искомое слово или фразу. Пример:
EXEC system_searchAllTables 'Иванов'
Или ищете часть номера заказа:
EXEC system_searchAllTables 'ORD-2024'
Как это работает (коротко)
- Создаёт временную таблицу для результатов
- Проходит по всем пользовательским таблицам (системные пропускает)
- В каждой таблице проверяет колонки с типами: char, varchar, nchar, nvarchar, int, decimal
- Если находит совпадение — пишет имя таблицы, колонку и само значение
Важный нюанс
Процедура ищет по LIKE '%текст%'. То есть, если ищете «Иван», найдёт и «Иванов», и «Иваненко». Имейте в виду.
Пример результата
Допустим, ищете клиента по фамилии «Петров». На выходе получите что-то такое:
ColumnName | ColumnValue
-------------------------------|-------------------------------
[Sales].[Customers].[LastName] | Петров
[Sales].[Customers].[FullName] | Петров Иван Сергеевич
[HR].[Employees].[Name] | Петрова Анна
Когда это реально выручает
- Срочно нужно найти, в каких таблицах хранятся данные по конкретному заказу
- Проверяете, не затесалось ли старое значение после миграции
- Ищете, где используется конкретный email или номер телефона
Скрипт не идеальный, но для быстрого поиска — самое то.
Что еще посмотреть по SQL Server
Как сгенерировать различные ФИО в SQL Server
Поиск строки во всех хранимых процедурах SQL Server
Скрипт бекапа базы и восстановления из бекапа
SQL запрос для получения всех текущих выполняющихся запросов на базе
Запрос для поиска проблемных SQL по процессору
Как писать запросы с колонкой по временным интервалам (неделя, месяц, квартал, год)
Получить части пути к файлу (расширение, путь, название файла)
Из строки в Base64 и обратно в SQL Server (с учетом кирилицы)
Дополнительный заработок для разработчиков на T-SQL
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта