2010-03-26 11 views
15

Estoy tratando de obtener una lista de procedimientos almacenados en t-sql. Estoy usando la línea:Recuperando una lista filtrada de procedimientos almacenados usando t-sql

exec sys.sp_stored_procedures; 

me gustaría filtrar los resultados de vuelta, sin embargo, por lo que solo me dan usuario procedimientos almacenados creados. Me gustaría filtrar sp_ *, dt_ *, fn_ *, xp_ * y todo lo demás que es un procedimiento almacenado del sistema y no me interesa. ¿Cómo puedo manipular el conjunto de resultados devuelto?

Usando Sql Server 2008 express.

¡Resuelto! Esto es lo que solía:

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

El título de esta pregunta no coincide con la solución, podría ser el título editado a '¿cómo enumerar los procedimientos almacenados'? –

+0

Estoy de acuerdo, el título fue terrible. Lo he actualizado – DanDan

Respuesta

15

En lugar de utilizar el procedimiento almacenado puede utilizar los siguientes puntos de vista:

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

o

Select * From Information_Schema.Routines 
+0

Gracias! Volveré a poner toda la solución en mi pregunta. – DanDan

2

Seleccione los elementos del sysobjects table y utilizan una cláusula where type = 'P' para procedimientos almacenados y filtro en name.

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