Visualizzare la definizione di una stored procedure

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsPiattaforma di sistemi analitici (PDW)

Visualizzare la definizione di una stored procedure

Questo articolo descrive come visualizzare la definizione di una stored procedura in Esplora oggetti e nell'editor di query mediante una stored procedure di sistema, una funzione di sistema e una vista del catalogo di oggetti.

Sicurezza

Autorizzazioni

Stored procedure di sistema: sp_helptext
È richiesta l'appartenenza al ruolo public . Le definizioni degli oggetti di sistema sono visibili pubblicamente. La definizione degli oggetti utente è visibile al proprietario degli oggetti o agli utenti autorizzati che hanno una delle autorizzazioni seguenti: ALTER, CONTROL, TAKE OWNERSHIP o VIEW DEFINITION.

Funzione di sistema: OBJECT_DEFINITION
Le definizioni degli oggetti di sistema sono visibili pubblicamente. La definizione degli oggetti utente è visibile al proprietario degli oggetti o agli utenti autorizzati che hanno una delle autorizzazioni seguenti: ALTER, CONTROL, TAKE OWNERSHIP o VIEW DEFINITION. Queste autorizzazioni sono assegnate implicitamente ai membri dei ruoli predefiniti del database db_owner, db_ddladmine db_securityadmin .

Vista del catalogo dell'oggetto: sys.sql_modules
La visibilità dei metadati nelle viste del catalogo è limitata alle entità a protezione diretta di cui l'utente è proprietario o per le quali dispone di autorizzazioni. Per altre informazioni, vedere Metadata Visibility Configuration.

Nota

La stored procedure di sistema sp_helptext non è supportata in Azure Synapse Analytics. Usare invece la vista del catalogo di oggetti sys.sql_modules. Più avanti in questo articolo sono disponibili esempi.

Visualizzazione della definizione di una stored procedure

È possibile usare uno dei seguenti elementi:

Utilizzo di SQL Server Management Studio

Per visualizzare la definizione di una stored procedure in Esplora oggetti:

  1. In Esplora oggetti connettersi a un'istanza del motore di database ed espanderla.

  2. Espandere Database, espandere il database a cui appartiene la stored procedure, quindi espandere Programmabilità.

  3. Espandere Stored procedure, fare clic con il pulsante destro del mouse sulla stored procedure, scegliere Crea script per stored procedure, quindi selezionare una delle opzioni seguenti: CREATE in, ALTER ino DROP e CREATE in.

  4. Selezionare Nuova finestra editor di query. Verrà visualizzata la definizione della stored procedure.

Utilizzo di Transact-SQL

Per visualizzare la definizione di una stored procedure nell'editor di query

Stored procedure di sistema: sp_helptext

  1. In Esplora oggetti connettersi a un'istanza del motore di database.

  2. Nella barra degli strumenti selezionare Nuova query.

  3. Nella finestra Query immettere l'istruzione seguente che usano la stored procedure di sistema sp_helptext. Modificare il nome del database e della stored procedure in modo da indicare il database e la stored procedure desiderati.

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

Funzione di sistema: OBJECT_DEFINITION

  1. In Esplora oggetti connettersi a un'istanza del motore di database.

  2. Nella barra degli strumenti selezionare Nuova query.

  3. Nella finestra Query immettere le istruzioni seguenti che usano la funzione di sistema OBJECT_DEFINITION. Modificare il nome del database e della stored procedure in modo da indicare il database e la stored procedure desiderati.

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

Vista del catalogo di oggetti: sys.sql_modules

  1. In Esplora oggetti connettersi a un'istanza del motore di database.

  2. Nella barra degli strumenti selezionare Nuova query.

  3. Nella finestra Query immettere le istruzioni seguenti che usano la vista del catalogo sys.sql_modules. Modificare il nome del database e della stored procedure in modo da indicare il database e la stored procedure desiderati.

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

Vedi anche