如何找到存储过程调用?

时间:2012-04-16 16:12:40

标签: sql sql-server-2005 stored-procedures

有没有办法可以找到SQL Server 2005数据库中调用存储过程的位置?

我尝试使用Find,但这不像在Visual Studios中那样工作。

提前致谢。

4 个答案:

答案 0 :(得分:12)

如果您需要按名称查找数据库对象(例如表格,列,触发器) - 请查看名为SQL Search免费红门工具,它会执行此操作 - 它会搜索您的整个数据库中的任何类型的字符串。

因此,在您的情况下,如果您知道您感兴趣的存储过程是什么 - 只需将其键入搜索框,SQL搜索就会快速显示所有位置正在调用存储过程。

enter image description here

enter image description here

对于任何DBA或数据库开发人员来说,这是一个非常必备的工具 - 我是否已经提到它绝对免费用于任何用途?

答案 1 :(得分:6)

您可以尝试使用SQL Server Management Studio中的View Dependencies

右键单击存储过程,然后选择View Dependencies。但是我发现它并不总是100%准确。

答案 2 :(得分:6)

您可以创建“查找”SP

我用这个来搜索数据库对象中的文本:

CREATE sp_grep (@object varchar(255))
as

SELECT distinct
'type' = case type
when 'FN' then 'Scalar function'
when 'IF' then 'Inlined table-function'
when 'P' then 'Stored procedure'
when 'TF' then 'Table function'
when 'TR' then 'Trigger'
when 'V' then 'View'
end,
o.[name],
watchword = @object
FROM dbo.sysobjects o (NOLOCK)
JOIN dbo.syscomments c (NOLOCK)
ON o.id = c.id
where c.text like '%'+@object+'%' 

答案 3 :(得分:1)

View the Dependencies of a Stored Procedure

select *
from sys.dm_sql_referencing_entities('[SchemaName].[SPName]', 'OBJECT');