在SQL Management Studio 2005中搜索

Pra*_*bhu 1 sql sql-server stored-procedures sql-server-2005 sql-server-2008

有没有办法在存储过程中搜索文本?例如,我想知道任何存储过程是否正在引用特定的表.

gbn*_*gbn 8

SELECT
   OBJECT_SCHEMA_NAME(object_id) + '.' + OBJECT_NAME(object_id)
FROM
   sys.sql_modules
WHERE
   definition like '%whatever%'
Run Code Online (Sandbox Code Playgroud)

syscomments是遗留的,并将定义拆分为nvarchar 4000块,因此无法找到您想要的内容.这同样适用于INFORMATION_SCHEMA.ROUTINES


Ray*_*Ray 6

Red Gate有一个名为Sql Search的免费工具,我更喜欢.它保留了一个索引,以便在第一次搜索之后,它非常快(甚至第一个也很好......).它可以搜索procs中的文本以及表和视图定义等.有一些过滤功能使它更容易使用.搜索结果以非常有用的方式显示,对象的全文和搜索文本突出显示.