OBJECT_DEFINITION (Transact-SQL)
Se aplica a: SQL Server
Azure SQL Database
Azure SQL Instancia administrada
Devuelve el texto de origen de Transact-SQL para la definición de un objeto especificado.
Convenciones de sintaxis de Transact-SQL
Sintaxis
OBJECT_DEFINITION ( object_id )
Nota:
Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.
Argumentos
object_id
Es el identificador del objeto que se va a utilizar. object_id es int y se considera que representa un objeto del contexto de la base de datos actual.
Tipos de valor devuelto
nvarchar(max)
Excepciones
Devuelve NULL si se produce un error o si el autor de la llamada no tiene permiso para ver el objeto.
Un usuario solo puede ver los metadatos de elementos protegibles que posea o para los que se le haya concedido permiso. 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. Para obtener más información, consulte Metadata Visibility Configuration.
Comentarios
El Motor de base de datos de SQL Server da por hecho que object_id se encuentra en el contexto de la base de datos actual. La intercalación de la definición del objeto siempre coincide con la del contexto de la base de datos que realiza la llamada.
OBJECT_DEFINITION se aplica a los siguientes tipos de objeto:
C = Restricción CHECK
D = Default (restricción o independiente)
P = Procedimiento almacenado de SQL
FN = Función escalar de SQL
R = Regla
RF = Procedimiento de filtro de replicación
TR = Desencadenador SQL (desencadenador DML en el ámbito del esquema o desencadenador DDL en el ámbito de la base de datos o del servidor)
IF = Función SQL insertada con valores de tabla
TF = Función con valores de tabla de SQL
V = Vista
Permisos
Las definiciones de los objetos del sistema están visibles públicamente. 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. Estos permisos corresponden implícitamente a los miembros de los roles fijos de base de datos db_owner, db_ddladminy db_securityadmin .
Ejemplos
A. Devolver el texto de origen de un objeto definido por el usuario
En el ejemplo siguiente se devuelve la definición de un desencadenador definido por el usuario, uAddress
, en el esquema Person
. Se utiliza la función integrada OBJECT_ID
para devolver el Id. de objeto del desencadenador a la instrucción OBJECT_DEFINITION
.
USE AdventureWorks2022;
GO
SELECT OBJECT_DEFINITION (OBJECT_ID(N'Person.uAddress')) AS [Trigger Definition];
GO
B. Devolver el texto de origen de un objeto del sistema
En el ejemplo siguiente se devuelve la definición del procedimiento almacenado del sistema sys.sp_columns
.
USE AdventureWorks2022;
GO
SELECT OBJECT_DEFINITION (OBJECT_ID(N'sys.sp_columns')) AS [Object Definition];
GO
Vea también
Funciones de metadatos (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)