奇怪的是,这在几个星期前就有效了。我需要在所有存储过程中找到某个短语出现的所有实例。我们有数百个存储过程,所以我想用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版)。
答案 0 :(得分:1)
是的,正如Martin Smith建议的那样,首先确保您的查询位于正确的数据库环境中:
USE YOUR_DATABASE_NAME;
否则,以下查询不会返回任何内容:
SELECT TOP 5 *
FROM sys.sql_modules;