Для любого SQL-сервера новее, чем SQL-сервер 2000:
SELECT object_name = OBJECT_NAME(sm.object_id), o.type_desc, sm.definition
FROM sys.sql_modules AS sm
JOIN sys.objects AS o ON sm.object_id = o.object_id
WHERE sm.definition like '%searchString%'
ORDER BY o.type, o.name, o.object_id
Если кто-то застрял с SQL Server 2000, таблица sql_modules не существует, поэтому вы будете использовать syscomments, вы получите несколько записей для хранимых процедур длиной более 4000 символов, но они будут иметь одинаковые c. поле , чтобы вы могли сгруппировать детали, чтобы получить полный текст хранимой процедуры:
Select o.id, c.number, o.name, c.text
from syscomments c
inner join sysobjects o on o.id = c.id
where c.encrypted = 0 and o.type = 'P'
and c.id in
(Select id from syscomments where text like '%searchtext%')
order by objecttype, o.name, o.id, c.number, c.colid