如何查找存储过程调用?

7
有没有方法可以在SQL Server 2005数据库中找到存储过程被调用的位置?我尝试使用Find,但它不像在Visual Studios中那样工作。谢谢提前。
4个回答

12
如果你需要按名称查找数据库对象(例如表、列、触发器),可以使用名为 SQL Search 的免费 Red-Gate 工具来进行查找。该工具可以搜索整个数据库中的任何字符串。
因此,在您的情况下,如果您知道所需存储过程的名称,只需将其键入搜索框,SQL Search 就会快速显示所有调用该存储过程的位置。
这是任何 DBA 或数据库开发人员必备的好工具 - 我已经提到它绝对可以免费使用了吗?请注意保留HTML标记。 输入图像描述 输入图像描述

1
@Yatrix:什么都没有- 零,没了,一无所有 - 没有任何东西 - 什么也没有 - 明白了吗? :-) - marc_s
1
听起来很贵,但我买得起。谢谢。 - Yatrix
1
这只是听起来的声音 - 它很快就能回本 - 真的! :-) - marc_s
不错,我完全忘记了Red Gate。 - Taryn

7
你可以尝试在SQL Server Management Studio中使用“查看依赖项”功能。
右键单击存储过程,然后选择“查看依赖项”。但我发现它并不总是100%准确。

6

您可以创建一个“查找”存储过程

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

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+'%' 

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接