OBJECT_DEFINITION (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Returnerar den Transact-SQL källtexten till definitionen av ett specificerat objekt.

Transact-SQL syntaxkonventioner

Syntax

OBJECT_DEFINITION ( object_id )  

Arguments

object_id
Är ID:t för objektet som ska användas. object_id är int, och antas representera ett objekt i den aktuella databaskontexten.

Returtyper

nvarchar(max)

Exceptions

Returnerar NULL vid fel eller om en anropare inte har behörighet att visa objektet.

En användare kan bara visa metadata för skyddsbara filer som användaren äger eller som användaren har beviljats behörighet för. Detta innebär att inbyggda funktioner som OBJECT_DEFINITION metadata kan returnera NULL om användaren inte har någon behörighet på objektet. För mer information, se inställningar för metadatasynlighet.

Anmärkningar

SQL Server Database Engine antar att object_id befinner sig i den aktuella databaskontexten. Sammansättningen av objektdefinitionen matchar alltid den för den anropande databasens kontext.

OBJECT_DEFINITION gäller följande objekttyper:

  • C = Kontrollbegränsning

  • D = Standard (begränsning eller fristående)

  • P = SQL stored procedure

  • FN = SQL-skalärfunktion

  • R = Regel

  • RF = Replikationsfilterprocedur

  • TR = SQL-trigger (schema-scoped DML-trigger, eller DDL-trigger antingen i databasen eller serveromfånget)

  • IF = SQL inline tabellvärdesfunktion

  • TF = SQL-tabellvärd funktion

  • V = Vy

Permissions

Systemobjektdefinitioner är offentligt synliga. Definitionen av användarobjekt är synlig för objektägaren eller beviljare som har någon av följande behörigheter: ALTER, CONTROL, TAKE OWNERSHIP eller VIEW DEFINITION. Dessa behörigheter innehas implicit av medlemmar i db_owner, db_ddladminoch db_securityadmin fasta databasroller.

Examples

A. Returnera källtexten till ett användardefinierat objekt

Följande exempel returnerar definitionen av en användardefinierad trigger, uAddress, i schemat Person . Den inbyggda funktionen OBJECT_ID används för att returnera objekt-ID:t för triggern till satsen OBJECT_DEFINITION .

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

B. Returnera källtexten till ett systemobjekt

Följande exempel återger definitionen av systemlagrad procedur sys.sp_columns.

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

Se även

Metadata functions (Transact-SQL)
OBJECT_NAME (Transact-SQL)
OBJECT_ID (Transact-SQL)
sp_helptext (Transact-SQL)
sys.sql_moduler (Transact-SQL)
sys.server_sql_modules (Transact-SQL)