OBJECT_DEFINITION (Transact-SQL)
Retorna o texto de origem de Transact-SQL da definição de um objeto especificado.
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)