OBJECT_DEFINITION (Transact-SQL)
Restituisce il testo di origine Transact-SQL della definizione di un oggetto specificato.
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 AdventureWorks2008R2;
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 AdventureWorks2008R2;
GO
SELECT OBJECT_DEFINITION (OBJECT_ID(N'sys.sp_columns')) AS [Object Definition];
GO