我需要确定是否可以生成存储过程列表,其中存储过程源代码包含特定文本,例如“table_name”。
提前致谢。
答案 0 :(得分:3)
答案 1 :(得分: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%'
答案 2 :(得分:2)
如果要在Sql server中列出与存储过程相关的特定表,请右键单击特定表并单击视图依赖项,这将列出所有相关项,包括存储过程
答案 3 :(得分:2)
试试这个 -
SELECT *
FROM sys.dm_sql_referencing_entities ('dbo.table1', 'OBJECT');
答案 4 :(得分:2)
如果您使用SSMS,这是一个更好的工具 - 而且它是免费的! RedGate使SQL搜索实用程序SQLSearch非常棒。它可以让您搜索表名,列名,存储过程,函数以及您可以查找的所有内容。它将在多个数据库中完成。我喜欢所有的RedGate工具。
我提到它是免费的吗?强烈推荐。