Como se ha dicho Mike, la mejor manera es utilizar information_schema
. Siempre que no esté en la base de datos master, no se devolverán los procedimientos almacenados del sistema.
select *
from DatabaseName.information_schema.routines
where routine_type = 'PROCEDURE'
Si por alguna razón que habías no es del sistema procedimientos almacenados en la base de datos principal, se puede utilizar la consulta (esto filtrará 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_')
Si crea diagramas de base de datos, puede obtener un grupo de procesos que comiencen con 'dt_' en su base de datos, que también puede filtrar. –
+1 para el esquema de información. vale la pena leer: http://msdn.microsoft.com/en-us/library/ms186778.aspx – Shiham
Debe ser "Siempre y cuando no esté en las bases de datos [maestra] o [msdb], ..." –