Как узнать, выполняется ли хранимая процедура из других хранимых процедур? - PullRequest
0 голосов
/ 23 октября 2019

Я сделал некоторые изменения в хранимой процедуре (скажем, A), и в моем проекте более 500 хранимых процедур.

Могут быть хранимые процедуры, которые выполняют мою хранимую процедуру A внутри них.

Теперь мне нужно знать, на какие другие хранимые процедуры повлияет мойменять?

Я имею в виду : Как узнать, из какой другой хранимой процедуры вызывается хранимая процедура A ? Возможно ли это?

Ответы [ 3 ]

1 голос
/ 23 октября 2019

Вы можете найти их, используя:

SELECT  P.name
,       SM.definition
FROM    sys.procedures AS P
INNER JOIN sys.sql_modules AS SM
        ON SM.object_id = P.object_id
WHERE   SM.definition LIKE '%ProcedureA%'
1 голос
/ 23 октября 2019

Есть несколько способов найти зависимости. Итак, в порядке предпочтения ...

Проекты баз данных

Если вы еще не работали с ними;вы действительно должны быть.

Вот место, где вы можете начать свое приключение, юный падаван: https://docs.microsoft.com/en-us/visualstudio/data-tools/creating-and-managing-databases-and-data-tier-applications-in-visual-studio?view=vs-2019

Проверка зависимостей в SSMS

Короче говоря;щелкните правой кнопкой мыши объект на панели обозревателя объектов в SQL Server Management Studio и выберите «Показать зависимости ...»

Пример этого ответа приведен здесь: Зависимости внешнего ключа Microsoft SQL Server отображаются с использованием sp_MSdependenciesно не перечислены в sys.foreign_keys

Некоторые SQL!

например sys.sql_expression_dependencies

https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-sql-expression-dependencies-transact-sql?view=sql-server-ver15

0 голосов
/ 23 октября 2019

Вы можете использовать следующий запрос для поиска процедур, которые вызывают вашу.

select
    p.name
    , m.definition
from sys.procedures p
    inner join sys.sql_modules m
        on p.object_id = m.object_id
where n.[name] <> 'procedure_name'
    and m.definition like '%procedure_name%'

По сути, вы просматриваете определение хранимой процедуры и ищете название / текст вашей хранимой процедуры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...