Compartir a través de


sp_stored_procedures (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Devuelve una lista de los procedimientos almacenados del entorno actual.

Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_stored_procedures
    [ [ @sp_name = ] N'sp_name' ]
    [ , [ @sp_owner = ] N'sp_owner' ]
    [ , [ @sp_qualifier = ] N'sp_qualifier' ]
    [ , [ @fUsePattern = ] fUsePattern ]
[ ; ]

Argumentos

[ @sp_name = ] N'sp_name'

Nombre del procedimiento utilizado para devolver información de catálogo. @sp_name es nvarchar(390), con un valor predeterminado de NULL. Se admite la coincidencia de patrón de caracteres comodín.

[ @sp_owner = ] N'sp_owner'

El nombre del esquema al que pertenece el procedimiento. @sp_owner es nvarchar(384), con un valor predeterminado de NULL. Se admite la coincidencia de patrón de caracteres comodín. Si no se especifica @sp_owner , se aplican las reglas de visibilidad de procedimientos predeterminadas del sistema de administración de bases de datos (DBMS) subyacente.

En SQL Server, si el esquema actual contiene un procedimiento con el nombre especificado, se devuelve ese procedimiento. Si se especifica un procedimiento almacenado no calificado, el Motor de base de datos busca el procedimiento en el orden siguiente:

  • El esquema sys de la base de datos actual.

  • El esquema predeterminado del autor de la llamada se ejecuta en un lote o en SQL dinámico; o, si el nombre del procedimiento no calificado aparece dentro del cuerpo de otra definición de procedimiento, se busca el esquema que contiene este otro procedimiento a continuación.

  • El esquema dbo en la base de datos actual.

[ @sp_qualifier = ] N'sp_qualifier'

Nombre del calificador de procedimiento. @sp_qualifier es sysname, con un valor predeterminado de NULL. Varios productos de DBMS admiten la nomenclatura de tres partes para las tablas con el formato <qualifier>.<schema>.<name>. En SQL Server, @sp_qualifier representa el nombre de la base de datos. En algunos productos, representa el nombre del servidor del entorno de base de datos de la tabla.

[ @fUsePattern = ] fUsePattern

Determina si el carácter de subrayado (_), porcentaje (%) o corchetes ([ y ]) se interpretan como caracteres comodín. @fUsePattern es bit, con un valor predeterminado de 1.

  • 0 = La coincidencia de patrones está desactivada.
  • 1 = La coincidencia de patrones está activada.

Valores de código de retorno

Ninguno.

Conjunto de resultados

Nombre de la columna Tipo de datos Descripción
PROCEDURE_QUALIFIER sysname Nombre del calificador del procedimiento. Esta columna puede ser NULL.
PROCEDURE_OWNER sysname Nombre del propietario del procedimiento. Esta columna siempre devuelve un valor.
PROCEDURE_NAME nvarchar(134) Nombre del procedimiento. Esta columna siempre devuelve un valor.
NUM_INPUT_PARAMS int Reservado para uso futuro.
NUM_OUTPUT_PARAMS int Reservado para uso futuro.
NUM_RESULT_SETS int Reservado para uso futuro.
REMARKS varchar(254) Descripción del procedimiento. SQL Server no devuelve un valor para esta columna.
PROCEDURE_TYPE smallint Tipo de procedimiento. SQL Server siempre devuelve la versión 2.0. Este valor puede ser una de las siguientes opciones:

0 = SQL_PT_UNKNOWN
1 = SQL_PT_PROCEDURE
2 = SQL_PT_FUNCTION

Comentarios

Para obtener la interoperabilidad máxima, el cliente de puerta de enlace debe asumir solo la coincidencia de patrones estándar de SQL, es decir, los caracteres comodín porcentaje (%) y subrayado (_).

La información de permisos sobre cómo ejecutar el acceso a un procedimiento almacenado específico para el usuario actual no se comprueba necesariamente; por lo tanto, no se garantiza el acceso. Solo se usa la nomenclatura de tres partes. Esto significa que solo se devuelven procedimientos almacenados locales, no procedimientos almacenados remotos (que requieren nomenclatura de cuatro partes) cuando se ejecutan en SQL Server. Si el atributo ACCESSIBLE_SPROC de servidor es Y en el conjunto de resultados para sp_server_info, solo se devuelven los procedimientos almacenados que el usuario actual puede ejecutar.

sp_stored_procedures es equivalente a SQLProcedures en ODBC. Los resultados devueltos se ordenan mediante PROCEDURE_QUALIFIER, PROCEDURE_OWNERy PROCEDURE_NAME.

Permisos

Es necesario contar con un permiso de tipo SELECT sobre el esquema.

Ejemplos

A Devolver todos los procedimientos almacenados de la base de datos actual

En el ejemplo siguiente se devuelven todos los procedimientos almacenados de la base de datos AdventureWorks2022.

USE AdventureWorks2022;
GO
EXEC sp_stored_procedures;

B. Devolver un único procedimiento almacenado

En el ejemplo siguiente se devuelve un conjunto de resultados para el procedimiento almacenado uspLogError.

USE AdventureWorks2022;
GO

sp_stored_procedures N'uspLogError',
    N'dbo',
    N'AdventureWorks2022',
    1;