Как найти Sql Server 2008 R2 хранимых процедур для строки? - PullRequest
13 голосов
/ 15 июня 2011

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

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

спасибо!

Ответы [ 2 ]

29 голосов
/ 15 июня 2011

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

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

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

Примечание: INFORMATION_SCHEMAпредставления и системные комментарии усекают определение, поэтому они ненадежны.

2 голосов
/ 23 апреля 2013

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

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

...