OBJECT_DEFINITION (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure
Restituisce il testo di origine Transact-SQL della definizione di un oggetto specificato.
Convenzioni relative alla 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 sicurezza 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 altre informazioni, vedere Metadata Visibility Configuration.
Osservazioni:
Il motore di database di SQL Server presuppone che il valore object_id sia specificato nel contesto di 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 SQL inline valutata a livello di tabella
TF = funzione SQL con valori di tabella
V = vista
Autorizzazioni
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 .
Esempi
R. 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 AdventureWorks2022;
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 AdventureWorks2022;
GO
SELECT OBJECT_DEFINITION (OBJECT_ID(N'sys.sp_columns')) AS [Object Definition];
GO
Vedi anche
Funzioni per i metadati (Transact-SQL)
OBJECT_NAME (Transact-SQL)
OBJECT_ID (Transact-SQL)
sp_helptext (Transact-SQL)
sys.sql_modules (Transact-SQL)
sys.server_sql_modules (Transact-SQL)