Consulta para enumerar todos los procedimientos almacenados.

Resuelto asked hace 16 años • 25 respuestas

¿Qué consulta puede devolver los nombres de todos los procedimientos almacenados en una base de datos de SQL Server?

Si la consulta pudiera excluir los procedimientos almacenados del sistema, sería aún más útil.

 avatar Oct 21 '08 01:10
Aceptado

Como dijo Mike, la mejor manera es usar information_schema. Mientras no esté en la base de datos maestra, no se devolverán los procedimientos almacenados del sistema.

SELECT * 
  FROM DatabaseName.INFORMATION_SCHEMA.ROUTINES
 WHERE ROUTINE_TYPE = 'PROCEDURE'

Si por alguna razón tenía procedimientos almacenados que no son del sistema en la base de datos maestra, puede usar la consulta (esto filtrará la MAYORÍA de los procedimientos almacenados del sistema):

SELECT * 
  FROM [master].INFORMATION_SCHEMA.ROUTINES
 WHERE ROUTINE_TYPE = 'PROCEDURE' 
   AND LEFT(ROUTINE_NAME, 3) NOT IN ('sp_', 'xp_', 'ms_')
Dave_H avatar Oct 20 '2008 19:10 Dave_H
SELECT name, 
       type
  FROM dbo.sysobjects
 WHERE (type = 'P')
Kevin avatar Oct 20 '2008 18:10 Kevin

Según tengo entendido, el método "preferido" es utilizar las tablas information_schema:

select * 
  from information_schema.routines 
 where routine_type = 'PROCEDURE'
Mike avatar Oct 20 '2008 18:10 Mike

Lo siguiente devolverá todos los procedimientos en la base de datos seleccionada.

SELECT * FROM sys.procedures
Narendra Sharma avatar Feb 19 '2014 09:02 Narendra Sharma