Visualización de la definición de un procedimiento almacenado

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Visualización de la definición de un procedimiento almacenado

En este artículo se describe cómo ver la definición del procedimiento en el Explorador de objetos y utilizar un procedimiento almacenado del sistema, una función del sistema y una vista de catálogo de objetos en el Editor de consultas.

Seguridad

Permisos

Procedimiento almacenado del sistema: sp_helptext
Debe pertenecer al rol public . Las definiciones de los objetos del sistema están visibles públicamente. La definición de los objetos de usuario está visible para el propietario del objeto o los receptores de los permisos siguientes: ALTER, CONTROL, TAKE OWNERSHIP o VIEW DEFINITION.

Función del sistema: OBJECT_DEFINITION
Las definiciones de los objetos del sistema están visibles públicamente. La definición de los objetos de usuario está visible para el propietario del objeto o los receptores de los permisos siguientes: ALTER, CONTROL, TAKE OWNERSHIP o VIEW DEFINITION. Estos permisos corresponden implícitamente a los miembros de los roles fijos de base de datos db_owner, db_ddladminy db_securityadmin .

Vista de catálogo de objetos: sys.sql_modules
La visibilidad de los metadatos en las vistas de catálogo se limita a los elementos protegibles y que son propiedad de un usuario o sobre los que el usuario tiene algún permiso. Para obtener más información, consulte Metadata Visibility Configuration.

Nota:

El procedimiento almacenado del sistema sp_helptext no es compatible con Azure Synapse Analytics. En su lugar, use la vista de catálogo del objeto sys.sql_modules. Se proporcionarán más muestras más tarde en este artículo.

Ver la definición de un procedimiento almacenado

Puede usar cualquiera de los siguientes medios:

Uso de SQL Server Management Studio

Para ver la definición de un procedimiento en el Explorador de objetos:

  1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos y, a continuación, expándala.

  2. Expanda Bases de datos, expanda la base de datos a la que pertenece el procedimiento y, a continuación, expanda Programación.

  3. Expanda Procedimientos almacenados, haga clic con el botón derecho en el procedimiento; luego, seleccione Incluir procedimiento almacenado comoy, por último, seleccione una de las opciones siguientes: Create To, Alter To o Drop and Create To.

  4. Seleccione Nueva ventana del Editor de consultas. Se mostrará la definición del procedimiento.

Usar Transact-SQL

Para ver la definición de un procedimiento en el Editor de consultas

Procedimiento almacenado del sistema: sp_helptext

  1. En Explorador de objetos, conéctese a una instancia del motor de base de datos.

  2. En la barra de herramientas, seleccione Nueva consulta.

  3. En la ventana de consulta, escriba la siguiente instrucción que usa el procedimiento almacenado del sistema sp_helptext. Cambie el nombre de la base de datos y el nombre del procedimiento almacenado de forma que hagan referencia a la base de datos y al procedimiento almacenado que desee.

    USE AdventureWorks2022;  
    GO  
    EXEC sp_helptext N'AdventureWorks2022.dbo.uspLogError';  
    

Función del sistema: OBJECT_DEFINITION

  1. En Explorador de objetos, conéctese a una instancia del motor de base de datos.

  2. En la barra de herramientas, seleccione Nueva consulta.

  3. En la ventana de consulta, escriba las siguientes instrucciones que usan la función del sistema OBJECT_DEFINITION. Cambie el nombre de la base de datos y el nombre del procedimiento almacenado de forma que hagan referencia a la base de datos y al procedimiento almacenado que desee.

    USE AdventureWorks2022;  
    GO  
    SELECT OBJECT_DEFINITION (OBJECT_ID(N'AdventureWorks2022.dbo.uspLogError'));  
    

Vista del catálogo de objetos: sys.sql_modules

  1. En Explorador de objetos, conéctese a una instancia del motor de base de datos.

  2. En la barra de herramientas, seleccione Nueva consulta.

  3. En la ventana de consulta, escriba las siguientes instrucciones que usan la vista de catálogo sys.sql_modules. Cambie el nombre de la base de datos y el nombre del procedimiento almacenado de forma que hagan referencia a la base de datos y al procedimiento almacenado que desee.

    USE AdventureWorks2022;  
    GO  
    SELECT [definition]
    FROM sys.sql_modules  
    WHERE object_id = (OBJECT_ID(N'dbo.uspLogError'));  
    

Consulte también