OBJECT_DEFINITION (Transact-SQL)

Si applica a: SQL Server (tutte le versioni supportate) Azure SQL database Istanza gestita di SQL di Azure

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

Icona di collegamento all'argomentoIcona collegamento argomento Convenzioni della sintassi Transact-SQL

Sintassi

OBJECT_DEFINITION ( object_id )  

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 e versioni precedenti, vedere Documentazione delle versioni precedenti.

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.

Commenti

Il motore di database SQL Server presuppone che object_id si trova 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 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 AdventureWorks2012;  
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 AdventureWorks2012;  
GO  
SELECT OBJECT_DEFINITION (OBJECT_ID(N'sys.sp_columns')) AS [Object Definition];  
GO  

Vedere 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)