Condividi tramite


OBJECT_DEFINITION (Transact-SQL)

Restituisce il testo di origine Transact-SQL della definizione di un oggetto specificato.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

OBJECT_DEFINITION ( object_id )

Argomenti

  • object_id
    ID dell'oggetto da utilizzare. object_id è di tipo int e rappresenta un oggetto nel contesto del database corrente.

Tipi restituiti

nvarchar(max)

Eccezioni

Restituisce NULL in caso di errore o se un chiamante non dispone dell'autorizzazione necessaria per visualizzare l'oggetto.

Un utente può visualizzare esclusivamente i metadati delle entità a protezione diretta di cui è proprietario o per cui ha ricevuto un'autorizzazione. Di conseguenza, le funzioni predefinite di creazione dei metadati come OBJECT_DEFINITION possono restituire NULL se l'utente non dispone di alcuna autorizzazione per l'oggetto. Per ulteriori informazioni, vedere Configurazione della visibilità dei metadati e Risoluzione dei problemi relativi alla visibilità dei metadati.

Osservazioni

In Motore di database di SQL Server si presuppone che object_id sia contenuto nel contesto del database corrente. Le regole di confronto della definizione dell'oggetto corrispondono sempre alle regole di confronto del contesto del database chiamante.

OBJECT_DEFINITION è applicabile ai tipi di oggetti seguenti:

  • C = vincolo CHECK

  • D = DEFAULT (vincolo o valore autonomo)

  • P = stored procedure SQL

  • FN = funzione scalare SQL

  • R = regola

  • RF = procedura di filtro della replica

  • TR = trigger SQL (trigger DML con ambito schema, o trigger DDL con ambito database o server)

  • IF = funzione inline SQL valutata a livello di tabella

  • TF = funzione SQL valutata a livello di tabella

  • V = vista

Autorizzazioni

Le definizioni degli oggetti di sistema sono visibili pubblicamente. La definizione degli oggetti di sistema è visibile al proprietario degli oggetti o agli utenti autorizzati che dispongono di 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_ddladmin e db_securityadmin.

Esempi

A. Restituzione del testo di origine di un oggetto definito dall'utente

Nell'esempio seguente viene restituita la definizione di un trigger definito dall'utente, uAddress, nello schema Person. La funzione predefinita OBJECT_ID viene utilizzata per restituire l'ID dell'oggetto del trigger all'istruzione OBJECT_DEFINITION.

USE AdventureWorks;
GO
SELECT OBJECT_DEFINITION (OBJECT_ID(N'Person.uAddress')) AS [Trigger Definition]; 
GO

B. Restituzione del testo di origine di un oggetto di sistema

Nell'esempio seguente viene restituita la definizione della stored procedure di sistema sys.sp_columns.

USE AdventureWorks;
GO
SELECT OBJECT_DEFINITION (OBJECT_ID(N'sys.sp_columns')) AS [Object Definition];
GO