Sdílet prostřednictvím


OBJECT_DEFINITION (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Vrací Transact-SQL zdrojový text definice určeného objektu.

Transact-SQL konvence syntaxe

Syntaxe

OBJECT_DEFINITION ( object_id )  

Arguments

object_id
je ID objektu, který má být použit. object_id je int a předpokládá se, že v aktuálním databázovém kontextu představuje objekt.

Návratové typy

nvarchar(max)

Exceptions

Vrátí hodnotu NULL při chybě nebo pokud volající nemá oprávnění k zobrazení objektu.

Uživatel může zobrazit pouze metadata zabezpečitelných, která uživatel vlastní nebo na kterých má uživatel udělená oprávnění. To znamená, že vestavěné funkce vysílající metadata, jako je OBJECT_DEFINITION, mohou vrátit NULL, pokud uživatel nemá žádné oprávnění k objektu. Další informace naleznete v kapitole Konfigurace viditelnosti metadat.

Poznámky

SQL Server Database Engine předpokládá, že object_id je v aktuálním databázovém kontextu. Shoda definice objektu vždy odpovídá kontextu volané databáze.

OBJECT_DEFINITION platí pro následující typy objektů:

  • C = Kontrolní omezení

  • D = výchozí (omezení nebo samostatné)

  • P = SQL uložená procedura

  • FN = SQL skalární funkce

  • R = Pravidlo

  • RF = Postup replikačního filtru

  • TR = SQL trigger (schématově zaměřený DML trigger, nebo DDL trigger buď v databázovém nebo serverovém rozsahu)

  • IF = SQL inline tabulková funkce

  • TF = SQL tabulková funkce

  • V = Zobrazit

Povolení

Definice systémových objektů jsou veřejně viditelné. Definice uživatelských objektů je viditelná pro vlastníka objektu nebo uživatelé, kterým byla udělena práva, kteří mají některé z následujících oprávnění: ALTER, CONTROL, TAKE OWNERSHIP nebo VIEW DEFINITION. Tato oprávnění implicitně uchovávají členové db_owner, db_ddladmina db_securityadmin pevné databázové role.

Examples

A. Vrácení zdrojového textu uživatelsky definovaného objektu

Následující příklad vrací definici uživatelem definovaného spouštěče, uAddress, ve schématu Person . Vestavěná funkce OBJECT_ID se používá k vrácení ID objektu spouštěče do OBJECT_DEFINITION příkazu.

USE AdventureWorks2022;  
GO  
SELECT OBJECT_DEFINITION (OBJECT_ID(N'Person.uAddress')) AS [Trigger Definition];   
GO  

B. Vrácení zdrojového textu systémového objektu

Následující příklad vrací definici systémově uložené procedury sys.sp_columns.

USE AdventureWorks2022;  
GO  
SELECT OBJECT_DEFINITION (OBJECT_ID(N'sys.sp_columns')) AS [Object Definition];  
GO  

Viz také

Funkce metadat (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)