首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何知道存储过程是否是从其他存储过程执行的?

如何知道存储过程是否是从其他存储过程执行的?
EN

Stack Overflow用户
提问于 2019-10-23 09:32:28
回答 3查看 1.4K关注 0票数 0

我对存储过程(例如A)做了一些更改,在我的项目中有500多个存储过程。

可以有一些存储过程正在执行我的存储过程在它们中。

现在我需要知道,哪些其他存储过程会因我的更改而受到影响?

我的意思是:如何知道存储过程是从哪个存储过程调用的?有可能吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-10-23 09:37:27

你可以发现他们使用:

代码语言:javascript
复制
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%'
票数 2
EN

Stack Overflow用户

发布于 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中的依赖项检查器

简而言之,右键单击中的对象资源管理器窗格中的对象,并选择“显示依赖项.”

这个答案的例子,在这里:Microsoft SQL Server foreign key dependencies show up using sp_MSdependencies but are not listed in sys.foreign_keys

一些SQL!

例如sys.sql_expression_dependencies

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

票数 1
EN

Stack Overflow用户

发布于 2019-10-23 09:37:24

您可以使用以下查询来搜索调用您的过程。

代码语言:javascript
复制
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%'

本质上,您正在查看存储过程定义,并查找存储过程的名称/文本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58519766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档