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ópico Convenções da sintaxe Transact-SQL

Sintaxe

OBJECT_DEFINITION ( object_id )

Argumentos

  • object_id
    É a 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 em caso de erro ou se um chamador não tiver permissão para exibir o objeto.

Um usuário só pode exibir metadados de protegíveis de sua propriedade ou para os quais tenha recebido 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.

Comentários

O Mecanismo de Banco de Dados do SQL Server entende que object_id está no contexto do 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 AdventureWorks2012;
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 AdventureWorks2012;
GO
SELECT OBJECT_DEFINITION (OBJECT_ID(N'sys.sp_columns')) AS [Object Definition];
GO

Consulte também

Referência

funções de metadados (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)