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

SE APLICA A: síSQL Server síAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Devuelve el texto de origen de Transact-SQLTransact-SQL para la definición de un objeto especificado.Returns the Transact-SQLTransact-SQL source text of the definition of a specified object.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

  
OBJECT_DEFINITION ( object_id )  

ArgumentosArguments

object_idobject_id
Es el identificador del objeto que se va a utilizar.Is the ID of the object to be used. object_id es int y se considera que representa un objeto del contexto de la base de datos actual.object_id is int, and assumed to represent an object in the current database context.

Tipos devueltosReturn Types

nvarchar(max)nvarchar(max)

ExcepcionesExceptions

Devuelve NULL si se produce un error o si el autor de la llamada no tiene permiso para ver el objeto.Returns NULL on error or if a caller does not have permission to view the object.

Un usuario solo puede ver los metadatos de elementos protegibles que posea o para los que se le haya concedido permiso.A user can only view the metadata of securables that the user owns or on which the user has been granted permission. Esto significa que las funciones integradas de emisión de metadatos, como OBJECT_DEFINITION, pueden devolver NULL si el usuario no tiene ningún permiso para el objeto.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. Para obtener más información, consulte Metadata Visibility Configuration.For more information, see Metadata Visibility Configuration.

NotasRemarks

El Motor de base de datos de SQL ServerSQL Server Database Engine da por hecho que object_id se encuentra en el contexto de la base de datos actual.The Motor de base de datos de SQL ServerSQL Server Database Engine assumes that object_id is in the current database context. La intercalación de la definición del objeto siempre coincide con la del contexto de la base de datos que realiza la llamada.The collation of the object definition always matches that of the calling database context.

OBJECT_DEFINITION se aplica a los siguientes tipos de objeto:OBJECT_DEFINITION applies to the following object types:

  • C = Restricción CHECKC = Check constraint

  • D = Default (restricción o independiente)D = Default (constraint or stand-alone)

  • P = Procedimiento almacenado de SQLP = SQL stored procedure

  • FN = Función escalar de SQLFN = SQL scalar function

  • R = ReglaR = Rule

  • RF = Procedimiento de filtro de replicaciónRF = Replication filter procedure

  • TR = Desencadenador SQL (desencadenador DML en el ámbito del esquema o desencadenador DDL en el ámbito de la base de datos o del servidor)TR = SQL trigger (schema-scoped DML trigger, or DDL trigger at either the database or server scope)

  • IF = Función SQL insertada con valores de tablaIF = SQL inline table-valued function

  • TF = Función con valores de tabla de SQLTF = SQL table-valued function

  • V = VistaV = View

PermisosPermissions

Las definiciones de los objetos del sistema están visibles públicamente.System object definitions are publicly visible. La definición de objetos de usuario está visible para el propietario del objeto o para los receptores que dispongan de uno de los siguientes permisos: 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. Estos permisos corresponden implícitamente a los miembros de los roles fijos de base de datos db_owner, db_ddladminy db_securityadmin .These permissions are implicitly held by members of the db_owner, db_ddladmin, and db_securityadmin fixed database roles.

EjemplosExamples

A.A. Devolver el texto de origen de un objeto definido por el usuarioReturning the source text of a user-defined object

En el ejemplo siguiente se devuelve la definición de un desencadenador definido por el usuario, uAddress, en el esquema Person.The following example returns the definition of a user-defined trigger, uAddress, in the Person schema. Se utiliza la función integrada OBJECT_ID para devolver el Id. de objeto del desencadenador a la instrucción 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. Devolver el texto de origen de un objeto del sistemaReturning the source text of a system object

En el ejemplo siguiente se devuelve la definición del procedimiento almacenado del 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  

Consulte tambiénSee Also

Funciones de metadatos (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)