Есть ли способ поиска строки во всех хранимых процедурах в SQL Server Management Studio?
Найдите строку, выполнив поиск всех сохраненных процедур в SQL Server Management Studio 2008
Ответ 1
SELECT *
FROM sys.sql_modules
WHERE definition LIKE '%yourstring%'
Ответ 2
Посмотрите RedGate SQL Search. Это плагин Management Studio и бесплатная загрузка. Вы можете выполнять поиск в пределах определенной базы данных или всего экземпляра.
Ответ 3
Я всегда использую это:
SELECT Name
FROM sys.procedures
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%SEARCHSTRING%'
Ответ 4
В моем случае я искал, чтобы получить схему и имя хранимой процедуры всякий раз, когда я ищу конкретный текст или ключевое слово. Код, который я использую, и он работает для меня:
USE [your_DB_name];
GO
SELECT [Scehma]=schema_name(o.schema_id), o.Name
FROM sys.sql_modules m
INNER JOIN sys.objects o
ON o.object_id = m.object_id
WHERE m.definition like '%your keyword%'
GO
Результат прост и выглядит следующим образом:
----------------------------------------------
| Schema | Name |
----------------------------------------------
| dbo | stored_procedure_name |
----------------------------------------------
...
and so on (if the keyword exists in more than one stored procedure)