Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di
AzureIstanza gestita di SQL di
AzureDatabase SQL in Microsoft Fabric
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_moduli (Transact-SQL)
sys.server_sql_modules (Transact-SQL)