我对存储过程(例如A)做了一些更改,在我的项目中有500多个存储过程。
可以有一些存储过程正在执行我的存储过程,在它们中。
现在我需要知道,哪些其他存储过程会因我的更改而受到影响?
我的意思是:如何知道存储过程是从哪个存储过程调用的?有可能吗?
发布于 2019-10-23 09:37:27
你可以发现他们使用:
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%'发布于 2019-10-23 09:38:29
有几种方法可以找到依赖项。所以,客栈的优先次序..。
数据库项目
如果你还没有处理这些问题,你真的应该这么做。
这里是开始你的冒险的地方,年轻的学徒:https://learn.microsoft.com/en-us/visualstudio/data-tools/creating-and-managing-databases-and-data-tier-applications-in-visual-studio?view=vs-2019
SSMS中的依赖项检查器
简而言之,右键单击中的对象资源管理器窗格中的对象,并选择“显示依赖项.”
一些SQL!
例如sys.sql_expression_dependencies
发布于 2019-10-23 09:37:24
您可以使用以下查询来搜索调用您的过程。
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%'本质上,您正在查看存储过程定义,并查找存储过程的名称/文本。
https://stackoverflow.com/questions/58519766
复制相似问题