对sys.sql_modules的查询不返回任何行

时间:2012-06-18 21:02:23

标签: sql-server-2008

奇怪的是,这在几个星期前就有效了。我需要在所有存储过程中找到某个短语出现的所有实例。我们有数百个存储过程,所以我想用SQL告诉我它们的位置。我正在使用这个声明:

SELECT DISTINCT
o.name, o.type_desc
FROM sys.sql_modules m
JOIN sys.objects o ON m.object_id = o.object_id
WHERE m.definition LIKE '%view_cu_Account_Bills_b%'

问题是返回零行。问题似乎与sys.sql_modules有关,如下面的查询:

SELECT TOP 5 * 
FROM sys.sql_modules

也包含零行。在包含数百个存储过程的数据库中,为什么sys.sql_modules中没有任何内容?我在MS SQL Server设置中遗漏了什么? (我正在使用2008版)。

1 个答案:

答案 0 :(得分:1)

是的,正如Martin Smith建议的那样,首先确保您的查询位于正确的数据库环境中:

USE YOUR_DATABASE_NAME;

否则,以下查询不会返回任何内容:

SELECT TOP 5 * 
FROM sys.sql_modules;