Как найти все хранимые процедуры, которые ссылаются на конкретную хранимую процедуру - PullRequest
1 голос
/ 16 мая 2019

Я хочу найти весь список хранимых процедур, который ссылается на данную хранимую процедуру. Я использую SSMS 2017. Кто-нибудь может предложить запрос для этого?

Ответы [ 4 ]

1 голос
/ 16 мая 2019
SELECT Name
FROM sys.procedures
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%TableNameOrWhatever%'
1 голос
/ 16 мая 2019

В следующем запросе в предложении WHERE вместо '%YourProcedureName%' вы можете заменить имя вашей процедуры, оно вернет другие процедуры, для которых задано имя этой процедуры.

-- Find specific word in the SPs
SELECT DISTINCT P.[name], M.[definition]
FROM sys.procedures P
JOIN sys.sql_modules M ON M.[object_id] = P.[object_id]
WHERE M.[definition] LIKE '%YourProcedureName%' 
0 голосов
/ 16 мая 2019
SELECT Name
FROM sys.procedures
where name like '%someCommonNameOfProcedure%'
0 голосов
/ 16 мая 2019

Вы должны попробовать это решение . Для получения дополнительной информации, вы должны посетить эту ссылку .

SELECT 
    o.name AS ReferencingObject, 
    sd.referenced_entity_name AS ReferencedObject
FROM sys.sql_expression_dependencies  AS sd
INNER JOIN sys.objects AS o
    ON o.object_id = sd.referencing_id
WHERE sd.referenced_entity_name = 'my_object_name';

OR

SELECT  name AS ProcedureName ,
        CONVERT(VARCHAR(10), SysObj.modify_date, 103) AS [Create/Modify Date] ,
        CONVERT(VARCHAR(15), CAST(SysObj.modify_date AS TIME), 100) [Create/Modify Time]
FROM    sys.objects SysObj
WHERE   SysObj.type = 'P'
        AND DATEDIFF(D, SysObj.modify_date, GETDATE()) < YEAR(GETDATE())

OR

SELECT  name AS ProcedureName ,
        CONVERT(VARCHAR(10), SysObj.modify_date, 103) AS [Create/Modify Date] ,
        CONVERT(VARCHAR(15), CAST(SysObj.modify_date AS TIME), 100) [Create/Modify Time]
FROM    sys.objects SysObj
WHERE   SysObj.type = 'P'
ORDER BY SysObj.modify_date DESC
...