使用t-sql检索已过滤的存储过程列表

时间:2010-03-26 10:13:00

标签: tsql stored-procedures

我正在尝试获取t-sql中的存储过程列表。我正在使用这条线:

exec sys.sp_stored_procedures;

我想过滤回结果,所以我只获得用户创建的存储过程。我想过滤掉sp_ *,dt_ *,fn_ *,xp_ *以及其他所有系统存储过程并且对我没兴趣。如何操作返回的结果集?

使用Sql Server 2008 express。

解决!这是我使用的:

SELECT name FROM sys.procedures
WHERE [type] = 'P'
AND name NOT LIKE 'sp_%'
AND name NOT LIKE 'dt_%'
ORDER BY name ASC;

3 个答案:

答案 0 :(得分:19)

您可以使用以下视图,而不是使用存储过程:

Select * From sys.procedures
Where [Type] = 'P'

Select * From Information_Schema.Routines

答案 1 :(得分:2)

sysobjects table中选择项目,并使用where子句type = 'P'存储过程并过滤name

答案 2 :(得分:1)

SELECT [Routine_Name]
FROM   [INFORMATION_SCHEMA].[ROUTINES]
WHERE  [ROUTINE_TYPE] = 'PROCEDURE'