OBJECT_DEFINITION (Transact-SQL)

Actualizado: 17 de julio de 2006

Devuelve el texto de origen de Transact-SQL para la definición de un objeto especificado.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

OBJECT_DEFINITION ( object_id )

Argumentos

  • object_id
    Es el Id. del objeto que se va a utilizar. object_id es de tipo int y se considera que representa un objeto del contexto de la base de datos actual.

Tipos de valor devueltos

nvarchar(max)

Excepciones

Devuelve NULL si se produce un error o si el autor de la llamada no tiene permiso para ver el objeto.

En SQL Server 2005, un usuario sólo puede ver los metadatos de asegurables 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, vea Configuración de visibilidad de los metadatos y Solucionar problemas de visibilidad de los metadatos.

Notas

SQL Server Database Engine (Motor de base de datos de SQL Server) considera 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 réplica
  • 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 con valores de tabla en línea
  • TF = Función SQL con valores de tabla
  • V = Vista

Permisos

Las definiciones de los objetos del sistema están visibles públicamente. La definición de los objetos de usuario está visible para el propietario del objeto o los receptores de los permisos siguientes: ALTER, CONTROL, TAKE OWNERSHIP o VIEW DEFINITION. Estos permisos corresponden implícitamente a los miembros de las funciones fijas de base de datos db_owner, db_ddladmin y 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 AdventureWorks;
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 AdventureWorks;
GO
SELECT OBJECT_DEFINITION (OBJECT_ID(N'sys.sp_columns')) AS [Object Definition];
GO

Vea también

Referencia

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

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

17 de julio de 2006

Contenido nuevo:
  • Se ha agregado contenido sobre la visibilidad de los metadatos a la sección Excepciones.