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
OBJECT_DEFINITION ( object_id )
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.
nvarchar(max)
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.
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
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 .
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
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
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)