Udostępnij za pomocą


OBJECT_DEFINITION (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Zwraca Transact-SQL tekst źródłowy definicji określonego obiektu.

Transact-SQL konwencje składni

Składnia

OBJECT_DEFINITION ( object_id )  

Arguments

object_id
Jest identyfikatorem użytego obiektu. object_id jest int i zakłada się, że reprezentuje obiekt w aktualnym kontekście bazy danych.

Typy zwracane

nvarchar(max)

Exceptions

Zwraca wartość NULL w przypadku błędu lub jeśli obiekt wywołujący nie ma uprawnień do wyświetlania obiektu.

Użytkownik może wyświetlać tylko metadane zabezpieczanych, które użytkownik jest właścicielem lub którym użytkownik udzielił uprawnień. Oznacza to, że wbudowane funkcje emitujące metadane, takie jak OBJECT_DEFINITION, mogą zwracać NULL, jeśli użytkownik nie ma żadnych uprawnień do obiektu. Aby uzyskać więcej informacji, zobacz Konfiguracja widoczności metadanych.

Uwagi

Silnik bazy danych SQL Server zakłada, że object_id znajduje się w aktualnym kontekście bazy danych. Zestawienie definicji obiektu zawsze pokrywa się z kontekstem wywołującej bazy danych.

OBJECT_DEFINITION dotyczy następujących typów obiektów:

  • C = Ograniczenie sprawdzanie

  • D = Domyślne (ograniczenie lub samodzielne)

  • P = procedura przechowywana SQL

  • FN = funkcja skalarna SQL

  • R = Reguła

  • RF = Procedura filtrowania replikacyjnego

  • TR = wyzwalacz SQL (wyzwalacz DML o skali schematu, lub DDL w skali bazy danych lub serwera)

  • IF = funkcja tabelowa SQL inline

  • TF = funkcja tabelowa SQL

  • V = Widok

Permissions

Definicje obiektów systemowych są publicznie widoczne. Definicja obiektów użytkownika jest widoczna dla właściciela obiektu lub nabywców uprawnień, którzy mają jedno z następujących uprawnień: ALTER, CONTROL, TAKE OWNERSHIP lub VIEW DEFINITION. Te uprawnienia są domyślnie przyznane członkom stałych ról bazy danych: db_owner, db_ddladminoraz db_securityadmin.

Przykłady

A. Zwracanie tekstu źródłowego obiektu zdefiniowanego przez użytkownika

Poniższy przykład zwraca definicję wyzwalacza zdefiniowanego przez użytkownika, uAddress, w schemiacie Person . Wbudowana funkcja OBJECT_ID służy do zwracania identyfikatora obiektu wyzwalacza do OBJECT_DEFINITION instrukcji.

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

B. Zwracanie tekstu źródłowego obiektu systemowego

Poniższy przykład zwraca definicję procedury przechowywanej sys.sp_columnsw systemie .

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

Zobacz też

Funkcje metadanych (Transact-SQL)
OBJECT_NAME (Transact-SQL)
OBJECT_ID (Transact-SQL)
sp_helptext (Transact-SQL)
sys.sql_moduły (Transact-SQL)
sys.server_sql_modules (Transact-SQL)