OBJECT_DEFINITION (Transact-SQL)
Aplica-se a: SQL Server Banco 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 )
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)