Compartilhar via


OBJECT_DEFINITION (Transact-SQL)

Aplica-se a: SQL ServerBanco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

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

Convenções de sintaxe de Transact-SQL

Sintaxe

OBJECT_DEFINITION ( object_id )  

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

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

Retornará 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 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 Metadata Visibility Configuration.

Comentários

O Mecanismo de Banco de Dados do SQL Server supõe que object_id esteja no contexto do banco de dados atual. A ordenação 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 às entidades autorizadas que têm uma das seguintes permissões: ALTER, CONTROL, TAKE OWNERSHIP ou VIEW DEFINITION. Estas permissões são mantidas implicitamente por membros das funções fixas de banco de dados 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 AdventureWorks2022;  
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 AdventureWorks2022;  
GO  
SELECT OBJECT_DEFINITION (OBJECT_ID(N'sys.sp_columns')) AS [Object Definition];  
GO  

Consulte Também

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)