-3

我需要确定是否可以生成存储过程列表,其中存储过程源代码包含特定文本,例如“table_name”。

提前致谢。

4

5 回答 5

3

查看 syscomments 中的文本并加入 sysobjects 以获取对象类型和名称

系统对象

系统评论

于 2013-04-29T12:32:32.543 回答
3

存储过程文本(还有视图、函数和触发器)在 SQL 2008 的 sys.sql_modules 中捕获。

试试这个:

select object_name(object_id)
from sys.sql_modules
where definition like '%table_name%'

这将在名称旁边显示实际的对象类型:

select b.name, b.type_desc
from sys.sql_modules a
join sys.objects b      on a.object_id = b.object_id
where a.definition like '%table_name%'
于 2013-04-29T12:33:33.460 回答
2

如果您想列出与存储过程相关的特定表,而不是在 Sql server 中右键单击特定表并单击查看依赖项,这将列出所有依赖项,包括存储过程

于 2013-04-29T12:31:18.593 回答
2

试试这个——

SELECT *
FROM sys.dm_sql_referencing_entities ('dbo.table1', 'OBJECT');
于 2013-04-29T12:33:15.810 回答
2

如果您使用的是 SSMS,这里有一个更好的工具——而且它是免费的!RedGate 制作了一个很棒的 SQL 搜索实用程序SQLSearch。它可以让你搜索表名、列名、存储过程、函数,几乎所有你能找到的东西。它将跨多个数据库执行此操作。我喜欢所有的 RedGate 工具。

我有没有提到它是免费的?强烈推荐。

于 2013-04-29T15:43:42.117 回答