Megosztás a következőn keresztül:


OBJECT_DEFINITION (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

A megadott objektum definíciójának Transact-SQL forrásszövegét adja vissza.

Transact-SQL szintaxis konvenciók

Szemantika

OBJECT_DEFINITION ( object_id )  

Arguments

object_id
A használt tárgy azonosítója. object_idint, és feltételezhetően egy objektumot képvisel a jelenlegi adatbázis kontextusában.

Visszatérési típusok

nvarchar(max)

Exceptions

Null értéket ad vissza hiba esetén, vagy ha a hívó nem rendelkezik engedéllyel az objektum megtekintéséhez.

A felhasználó csak azoknak a biztonságos adatoknak a metaadatait tekintheti meg, amelyek a felhasználó tulajdonában vannak, vagy amelyekhez a felhasználó engedélyt kapott. Ez azt jelenti, hogy metaadatot kibocsátó, beépített funkciók, mint az OBJECT_DEFINITION, visszaadhatják a NULL-t, ha a felhasználónak nincs engedélye az objektumra. További információ: Metaadatok láthatóságának konfigurációja.

Megjegyzések

Az SQL Server adatbázis motor feltételezi, hogy object_id a jelenlegi adatbázis kontextusban van. Az objektum definíciójának összeállítása mindig megegyezik a hívó adatbázis kontextusával.

OBJECT_DEFINITION a következő objektumtípusokra vonatkozik:

  • C = Ellenőrzési korlátozás

  • D = Alapértelmezett (korlát vagy önálló)

  • P = SQL tárolt eljárás

  • FN = SQL skalárfüggvény

  • R = Szabály

  • RF = Replikációs szűrőeljárás

  • TR = SQL trigger (séma-scoped DML trigger, vagy DDL trigger adatbázisban vagy szerver hatókörben)

  • IF = SQL sorbeli táblázatértékű függvény

  • TF = SQL táblázatértékű függvény

  • V = Nézet

Permissions

A rendszerobjektum definíciók nyilvánosan láthatóak. A felhasználói objektumok definíciója látható az objektum tulajdonosa vagy azok számára, akik rendelkeznek a következő engedélyek bármelyikével: ALTER, CONTROL, TAKE OWNERSHIP vagy VIEW DEFINITION. Ezeket az engedélyeket implicit módon a db_owner, db_ddladminés db_securityadmin rögzített adatbázis-szerepkörök tagjai birtokolják.

Példák

A. Felhasználó által definiált objektum forrásszövegének visszaállítása

Az alábbi példa adja vissza a sémában található felhasználó által definiált trigger definícióját, uAddress, Person . A beépített funkciót OBJECT_ID arra használják, hogy visszaadja a trigger objektumazonosítóját az utasításba OBJECT_DEFINITION .

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

B. A rendszerobjektum forrásszövegének visszaküldése

A következő példa adja vissza a rendszer tárolt eljárásának sys.sp_columnsdefinícióját .

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

Lásd még:

Metaadatfüggvények (Transact-SQL)
OBJECT_NAME (Transact-SQL)
OBJECT_ID (Transact-SQL)
sp_helptext (Transact-SQL)
sys.sql_modulok (Transact-SQL)
sys.server_sql_modules (Transact-SQL)