OBJECT_DEFINITION (Transact-SQL)OBJECT_DEFINITION (Transact-SQL)

SI APPLICA A: sìSQL Server sìDatabase SQL di Azure noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Restituisce il testo di origine Transact-SQLTransact-SQL della definizione di un oggetto specificato.Returns the Transact-SQLTransact-SQL source text of the definition of a specified object.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintassiSyntax

  
OBJECT_DEFINITION ( object_id )  

ArgomentiArguments

object_idobject_id
ID dell'oggetto da utilizzare.Is the ID of the object to be used. object_id è di tipo int e rappresenta un oggetto nel contesto del database corrente.object_id is int, and assumed to represent an object in the current database context.

Tipi restituitiReturn Types

nvarchar(max)nvarchar(max)

EccezioniExceptions

Restituisce NULL in caso di errore o se un chiamante non dispone dell'autorizzazione necessaria per visualizzare l'oggetto.Returns NULL on error or if a caller does not have permission to view the object.

Un utente può visualizzare esclusivamente i metadati delle entità a sicurezza diretta di cui è proprietario o per cui ha ricevuto un'autorizzazione.A user can only view the metadata of securables that the user owns or on which the user has been granted permission. 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.This means that metadata-emitting, built-in functions such as OBJECT_DEFINITION may return NULL if the user does not have any permission on the object. Per altre informazioni, vedere Metadata Visibility Configuration.For more information, see Metadata Visibility Configuration.

RemarksRemarks

Motore di database di SQL ServerSQL Server Database Engine presuppone che object_id si trovi nel contesto di database corrente.The Motore di database di SQL ServerSQL Server Database Engine assumes that object_id is in the current database context. Le regole di confronto della definizione dell'oggetto corrispondono sempre alle regole di confronto del contesto del database chiamante.The collation of the object definition always matches that of the calling database context.

OBJECT_DEFINITION è applicabile ai tipi di oggetti seguenti:OBJECT_DEFINITION applies to the following object types:

  • C = vincolo CHECKC = Check constraint

  • D = DEFAULT (vincolo o valore autonomo)D = Default (constraint or stand-alone)

  • P = stored procedure SQLP = SQL stored procedure

  • FN = funzione scalare SQLFN = SQL scalar function

  • R = regolaR = Rule

  • RF = procedura di filtro della replicaRF = Replication filter procedure

  • TR = trigger SQL (trigger DML con ambito schema, o trigger DDL con ambito database o server)TR = SQL trigger (schema-scoped DML trigger, or DDL trigger at either the database or server scope)

  • IF = funzione SQL inline valutata a livello di tabellaIF = SQL inline table-valued function

  • TF = funzione SQL con valori di tabellaTF = SQL table-valued function

  • V = vistaV = View

AutorizzazioniPermissions

Le definizioni degli oggetti di sistema sono visibili pubblicamente.System object definitions are publicly visible. 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.The definition of user objects is visible to the object owner or grantees that have any one of the following permissions: ALTER, CONTROL, TAKE OWNERSHIP, or VIEW DEFINITION. Queste autorizzazioni sono assegnate implicitamente ai membri dei ruoli predefiniti del database db_owner, db_ddladmine db_securityadmin .These permissions are implicitly held by members of the db_owner, db_ddladmin, and db_securityadmin fixed database roles.

EsempiExamples

A.A. Restituzione del testo di origine di un oggetto definito dall'utenteReturning the source text of a user-defined object

Nell'esempio seguente viene restituita la definizione di un trigger definito dall'utente, uAddress, nello schema Person.The following example returns the definition of a user-defined trigger, uAddress, in the Person schema. La funzione predefinita OBJECT_ID viene utilizzata per restituire l'ID dell'oggetto del trigger all'istruzione OBJECT_DEFINITION.The built-in function OBJECT_ID is used to return the object ID of the trigger to the OBJECT_DEFINITION statement.

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

B.B. Restituzione del testo di origine di un oggetto di sistemaReturning the source text of a system object

Nell'esempio seguente viene restituita la definizione della stored procedure di sistema sys.sp_columns.The following example returns the definition of the system stored procedure sys.sp_columns.

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

Vedere ancheSee Also

Funzioni per i metadati (Transact-SQL) Metadata Functions (Transact-SQL)
OBJECT_NAME (Transact-SQL) OBJECT_NAME (Transact-SQL)
OBJECT_ID (Transact-SQL) OBJECT_ID (Transact-SQL)
sp_helptext (Transact-SQL) sp_helptext (Transact-SQL)
sys.sql_modules (Transact-SQL) sys.sql_modules (Transact-SQL)
sys.server_sql_modules (Transact-SQL)sys.server_sql_modules (Transact-SQL)