OBJECT_DEFINITION (Transact-SQL)

Retorna o texto de origem de Transact-SQL da definição de um objeto especificado.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

OBJECT_DEFINITION ( object_id )

Argumentos

  • object_id
    É o ID do objeto a ser usado. object_id é int, e considera-se que representa um objeto no contexto de banco de dados atual.

Tipos de retorno

nvarchar(max)

Exceções

Retorna NULL para erro ou caso um chamador não tenha permissão para exibir o objeto.

Um usuário só pode exibir metadados de protegíveis de sua propriedade ou para os quais ele recebeu permissão. Isso significa que as funções internas emissoras de metadados, como OBJECT_DEFINITION, podem retornar NULL se o usuário não tiver permissão no objeto. Para obter mais informações, consulte Configuração de visibilidade de metadados e Solucionando problemas de visibilidade de metadados.

Comentários

O Mecanismo de Banco de Dados do SQL Server entende que object_id está no contexto de banco de dados atual. O agrupamento da definição de objeto sempre corresponde ao do contexto de banco de dados que está fazendo a chamada.

OBJECT_DEFINITION se aplica aos tipos de objeto seguintes:

  • C = Verificar restrições

  • D = Padrão (restrição ou autônomo)

  • P = Procedimento armazenado SQL

  • FN = Função escalar SQL

  • R = Regra

  • RF = Procedimento do filtro de replicação

  • TR = Gatilho SQL (gatilho DML com escopo de esquema, ou gatilho DDL no banco de dados ou no escopo de servidor)

  • IF = Função SQL com valor de tabela embutida

  • TF = Função SQL com valor de tabela

  • V = Exibição

Permissões

Definições de objeto de sistema são publicamente visíveis. A definição de objetos de usuário é visível ao proprietário do objeto e aos que possuírem qualquer uma das seguintes permissões: ALTER, CONTROL, TAKE OWNERSHIP ou VIEW DEFINITION. Estas permissões são mantidas implicitamente por membros das funções de banco de dados fixas db_owner, db_ddladmine db_securityadmin.

Exemplos

A. Retornando o texto de origem de um objeto definido pelo usuário

O exemplo a seguir retorna a definição de um gatilho definido pelo usuário, uAddress, no esquema Person. A função interna OBJECT_ID é usada para retornar a ID do objeto do gatilho à instrução OBJECT_DEFINITION.

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

B. Retornando o texto de origem de um objeto de sistema

O exemplo a seguir retorna a definição do procedimento armazenado do sistema sys.sp_columns.

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