1

奇怪的是,这在几周前就奏效了。我需要在所有存储过程中找到某个短语出现的所有实例。我们有数百个存储过程,所以我想用 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 版)。

4

1 回答 1

1

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

USE YOUR_DATABASE_NAME;

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

SELECT TOP 5 * 
FROM sys.sql_modules;
于 2016-05-11T11:51:01.977 回答