7

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

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

提前致谢。

4

4 回答 4

12

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

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

在此处输入图像描述

在此处输入图像描述

对于任何 DBA 或数据库开发人员来说,它都是一个很棒的必备工具——我是否已经提到它完全免费用于任何用途?

于 2012-04-16T16:20:52.423 回答
6

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

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

于 2012-04-16T16:21:08.450 回答
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+'%' 
于 2012-04-16T16:21:59.177 回答
1

查看存储过程的依赖关系

select *
from sys.dm_sql_referencing_entities('[SchemaName].[SPName]', 'OBJECT');
于 2015-07-02T14:12:40.797 回答