【发布时间】:2019-05-16 04:50:56
【问题描述】:
我想找到所有引用给定存储过程的存储过程列表。我正在使用 SSMS 2017。任何人都可以建议对此进行查询吗?
【问题讨论】:
标签: sql sql-server stored-procedures ssms
我想找到所有引用给定存储过程的存储过程列表。我正在使用 SSMS 2017。任何人都可以建议对此进行查询吗?
【问题讨论】:
标签: sql sql-server stored-procedures ssms
在下面的查询中,在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%'
【讨论】:
SELECT Name
FROM sys.procedures
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%TableNameOrWhatever%'
【讨论】:
你应该试试这个solution。欲了解更多信息,请访问此link。
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';
或
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())
或
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
【讨论】:
SELECT Name
FROM sys.procedures
where name like '%someCommonNameOfProcedure%'
【讨论】: