我正在尝试获取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;
答案 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'