如何在 SQL Server 中检查调用存储过程

Posted

技术标签:

【中文标题】如何在 SQL Server 中检查调用存储过程【英文标题】:How to Check the calling stored procedure in SQL Server 【发布时间】:2021-01-03 16:30:18 【问题描述】:

我有一个存储过程名称示例“mySp”,我想知道谁调用了这个存储过程,我的意思是这个存储过程(mySp)正在被其他一些存储过程调用,请告诉我如何检查谁在 SQL Server 中调用我的存储过程。我的 sql 服务器中有大约 1500 个存储过程。

【问题讨论】:

除非你告诉程序从哪里调用它,否则它不会知道从哪里调用它。你需要在你的过程中添加一个(可选的)参数,这样你就可以告诉它什么/谁在告诉它做它的“事情”。 @@procid 作为参数传递非常有用,因为您可以对其进行样板化 【参考方案1】:

在 SQL Server Management Studio 中,您可以右键单击您的 mySP 并选择“查看依赖项” 在后台执行的代码是:

SELECT SCHEMA_NAME(sp.schema_id) AS [Schema], sp.name AS [Name]
FROM sys.all_objects AS sp
WHERE (sp.type = 'P' OR sp.type = 'RF' OR sp.type='PC')
and(sp.name='yourSPname' and SCHEMA_NAME(sp.schema_id)='yourSchema')

yourSPname 将是 mySp 和 yourSchema,例如 dbo。

【讨论】:

以上是关于如何在 SQL Server 中检查调用存储过程的主要内容,如果未能解决你的问题,请参考以下文章

sql server 存储过程如何调用存储过程

如何使用标准 BIP 参数在 BI Publisher 中调用 SQL Server 存储过程

如何从 SQL Server 2000 调用 MySQL 存储过程?

sqlserver 问题

如何使用 Hibernate con Sql Server 2000 调用存储过程?

SQL Server 存储过程并在 VB.NET 中执行