Как мне найти хранимую процедуру, содержащую определенный текст? Хотя я понимаю, что лучшее место для такого поиска - инструмент контроля версий, но есть ли способы сделать это в базе данных?
SELECT ROUTINE_NAME, ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_DEFINITION LIKE '%your text here%' AND ROUTINE_TYPE='PROCEDURE'
SELECT DISTINCT o.name AS Object_Name,o.type_desc FROM sys.sql_modules m INNER JOIN sys.objects o ON m.object_id=o.object_id WHERE m.definition Like '%Serach_Text%'
Вы можете искать sys.sql_modules . Определение содержит текст процедур. Представление содержит процедуры, представления, файлы udf и т. Д. Чтобы ограничиться хранимыми процедурами, вам нужно присоединиться с sys.procedure для object_id.