我有这个 SQL Server,它有很多分布在所有数据库中的存储过程,我正在寻找一种方法来查找这些嵌套存储过程是如何相互链接的,所以基本上是查看哪个存储过程正在运行哪个。
想知道是否有人遇到同样的问题并找到了一种以某种轻松方式获取此类信息的方法,而不是打开每个存储过程并检查它正在运行的其他存储过程。
谢谢
我有这个 SQL Server,它有很多分布在所有数据库中的存储过程,我正在寻找一种方法来查找这些嵌套存储过程是如何相互链接的,所以基本上是查看哪个存储过程正在运行哪个。
想知道是否有人遇到同样的问题并找到了一种以某种轻松方式获取此类信息的方法,而不是打开每个存储过程并检查它正在运行的其他存储过程。
谢谢
右键单击表名并选择“查看依赖项”,如下所示,我们正在查看 Employee 表的依赖项。
SELECT
routine_name,
routine_type
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_DEFINITION LIKE '%Your Object Name%'
EXEC sp_depends 'Your Object Name'
SELECT referencing_schema_name, referencing_entity_name,
referencing_id, referencing_class_desc, is_caller_dependent
FROM sys.dm_sql_referencing_entities ('Your Object Name', 'OBJECT');
根据您想要的信息,您可以查询 sys.sql_expression_dependencies 目录视图或使用 sys.dm_sql_referenced_entities 或 sys.dm_sql_referencing_entities 动态管理函数。
有关这些的信息,包括直接和间接依赖关系(链式依赖关系)的各种 SQL 查询示例,可以在此处找到:报告 SQL 依赖关系。