Как искать хранимые процедуры Sql Server 2008 R2 для строки?

Я переношу устаревший SQLS2k на 2008R2, и кажется, что все данные были выполнены через хранимые procs, и любые пользовательские запросы используют устаревший синтаксис внешнего соединения *= =*. Существует более сотни обработок, поэтому я не хочу открывать их каждый отдельно, чтобы увидеть, использует ли он этот синтаксис (большинство не будет), есть ли способ, которым я могу запросить метаданные для списка procs/functions/views/триггеров, затем выполните цикл поиска строк *= или =*, распечатав имя нарушающего объекта?

Мой фон - оракул, я знаю, как найти метаданные там, но я немного новичок в Sql Server. Переход версии совместимости не является вариантом.

спасибо!

Ответ 1

Свободный Поиск в Red Gate SQL?

Или запрос sys.sql_modules

SELECT OBJECT_NAME(object_id)
FROM sys.sql_modules
WHERE definition LIKE '%=*%' OR definition LIKE '%*=%'

Примечание. Представления и syscomments INFORMATION_SCHEMA обрезают определение так ненадежны.

Ответ 2

Проблема с использованием запросов заключается в том, что они не работают, если хранимая процедура зашифровывается, если вы не используете тип соединения ЦАП.

Здесь используется инструмент сторонних разработчиков, потому что они помогают вам делать это без особых хлопот. Я использую ApexSQL Search бесплатно, но я думаю, вы не можете ошибиться с Red Gate или любым другим инструментом там.