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.
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_')
SELECT name,
type
FROM dbo.sysobjects
WHERE (type = 'P')
Según tengo entendido, el método "preferido" es utilizar las tablas information_schema:
select *
from information_schema.routines
where routine_type = 'PROCEDURE'
Lo siguiente devolverá todos los procedimientos en la base de datos seleccionada.
SELECT * FROM sys.procedures