Con la siguiente instrucción SQL podemos obtener todos los procedimientos almacenados que existen en nuestra base de datos:
USE MIBD;
GO
SELECT * FROM sys.all_objects
WHERE ([type] = ‘P’ OR [type] = ‘X’ OR [type] = ‘PC’)
ORDER BY [name];
GO
Esta codificación está basada en el filtro type. Mediante la siguiente tabla podemos determinar el tipo de objetos que deseamos que devuelva y de esta forma ajusta la cláusula WHERE para que devuelva sólo aquellos tipos que necesitamos. En ella únicamente podemos ver vistas, funciones y procedimientos, aunque disponemos de otra serie de tipos de objeto por los que filtrar:
| Iniciales de tipo | Tipo de objeto devuelto |
| FN | Función SQL Escalar |
| IF | Función inline que devuelve una tabla |
| P | Procedimiento almacenado SQL |
| PC | Procedimiento almacenado CLR |
| TF | Función que devuelve una tabla SQL |
| V | Vista |
| X | Procedimiento almacenado Extendido |
En un momento dado nos puede interesar conocer que SPs son los que han sido originalmente creados por Microsoft. Eso se define por el campo is_ms_shipedd. Cuando este campo toma como valor 1, el SP ha sido creado por MS. Con este filtrado podemos entonces conocer cuales han sido los SPs creados por usuario:
USE MIBD;
GO
SELECT * FROM sys.all_objects
WHERE ([type] = ‘P’ OR [type] = ‘X’ OR [type] = ‘PC’)
AND [is_ms_shipped] = 0
ORDER BY [name];
GO
* Traducción libre del artículo “Finding and Listing ALL Procedures, Functions, and Views in SQL Server 2005” de James Rea publicado en www.sqlservercentral.com