Cómo buscar y listar todos los procedimientos, funciones y vistas en SQL Server

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

Deja una respuesta