Aracılığıyla paylaş


OBJECT_DEFINITION (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Belirli bir nesnenin tanımının Transact-SQL kaynak metnini döndürür.

Transact-SQL söz dizimi kuralları

Sözdizimi

OBJECT_DEFINITION ( object_id )  

Arguments

object_id
Kullanılacak nesnenin kimliği nedir. object_idint'tir ve mevcut veritabanı bağlamında bir nesneyi temsil ettiği varsayılır.

Dönüş Türleri

nvarchar(max)

Exceptions

Hata durumunda veya çağıranın nesneyi görüntüleme izni yoksa NULL döndürür.

Bir kullanıcı yalnızca kullanıcıya ait olan veya kullanıcıya izin verilen güvenli hale getirilebilir öğeler meta verilerini görüntüleyebilir. Bu, OBJECT_DEFINITION gibi metaveri yayan, yerleşik fonksiyonların, kullanıcının nesne üzerinde herhangi bir izni yoksa NULL döndürebileceği anlamına gelir. Daha fazla bilgi için bkz. meta veri görünürlüğü yapılandırması .

Açıklamalar

SQL Server Veritabanı Motoru, object_id mevcut veritabanı bağlamında olduğunu varsayar. Nesne tanımının derlemesi her zaman çağrı veritabanı bağlamıyla eşleşir.

OBJECT_DEFINITION aşağıdaki nesne türlerine uygulanır:

  • C = Kontrol kısıtlaması

  • D = Varsayılan (kısıtlama veya bağımsız)

  • P = SQL kayıtlı prosedür

  • FN = SQL skaler işlevi

  • R = Kural

  • RF = Çoğaltma filtresi prosedürü

  • TR = SQL tetikleyicisi (şema kapsamlı DML tetikleyicisi veya veritabanı veya sunucu kapsamında DDL tetikleyicisi)

  • IF = SQL satır içi tablo değerli işlevi

  • TF = SQL tablo değerli fonksiyon

  • V = Görünüm

Permissions

Sistem nesne tanımları kamuya açık olarak görünürdür. Kullanıcı nesnelerinin tanımı, nesnenin sahibi veya aşağıdaki izinlerden herhangi birine sahip olan kişiler tarafından görülebilir: ALTER, CONTROL, TAKE OWNERSHIP veya VIEW DEFINITION. Bu izinler, db_owner, db_ddladminve db_securityadmin sabit veritabanı rollerinin üyeleri tarafından örtük olarak tutulur.

Örnekler

A. Kullanıcı tanımlı bir nesnenin kaynak metnini geri döndürmek

Aşağıdaki örnek, şemada kullanıcı tarafından tanımlanan bir tetikleyicinin tanımını uAddressPerson geri getirir. Yerleşik fonksiyon OBJECT_ID , tetikleyicinin nesne kimliğini ifadeye OBJECT_DEFINITION geri döndürmek için kullanılır.

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

B. Bir sistem nesnesinin kaynak metnini geri döndürmek

Aşağıdaki örnek, sistem depolanmış prosedürün sys.sp_columnstanımını geri getirir.

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

Ayrıca Bkz.

Meta Veri İşlevleri (Transact-SQL)
OBJECT_NAME (Transact-SQL)
OBJECT_ID (Transact-SQL)
sp_helptext (Transact-SQL)
sys.sql_modüller (Transact-SQL)
sys.server_sql_modules (Transact-SQL)