Share via


sys.dm_sql_referenced_entities (Transact-SQL)

Kullanıcı tanımlı varlık tanımında belirtilen başvuru varlığın adı tarafından başvurulan her bir satır döndürür.Kullanıcı tanımlı bir varlık olarak adlandırılan iki varlık arasında BIR bağımlılık oluşturulur Başvurulan varlık adlı başka bir kullanıcı tanımlı varlık kalıcı SQL ifadesi adını görüntülenenvarlık başvuru.Örneğin, saklı yordam belirtilen başvuru varlık, bu işlev başvurulan kullanıcı tanımlı tüm varlıklar tablolar, görünümler, kullanıcı tanımlı türler (UDTs) gibi saklı yordam verir veya diğer saklı yordamlar.

Bu dinamik yönetimi işlev, belirtilen başvuru varlık tarafından başvurulan varlıkları aşağıdaki türlerde rapor için kullanabilirsiniz:

  • Şemaya bağlı varlıklar

  • Şemaya bağlı olmayan varlıklar

  • Geçici veritabanı ve siteler için sunucu

  • Şemaya bağlı ve non-şemaya bağlı sütun düzey bağımlılıkları

  • Kullanıcı tanımlı türler (diğer ad ve CLR UDT)

  • XML şema koleksiyonları

  • Bölüm işlevleri

sys.dm_sql_referenced_entities (
        ' [ schema_name. ] referencing_entity_name ' , ' <referencing_class> ' )

<referencing_class> ::=
{
    OBJECT
  | DATABASE_DDL_TRIGGER
  | SERVER_DDL_TRIGGER
}

Bağımsız değişkenler

  • [ schema_name. ] referencing_entity_name
    Is the name of the referencing entity.schema_name is required when the referencing class is OBJECT.

    schema_name.referencing_entity_name olan nvarchar(517).

  • <referencing_class> :: = {NESNE | database_ddl_trigger | server_ddl_trigger}
    Belirtilen sınıf varlık başvuran iş.Tablo için yalnızca bir sınıf belirtilebilir.

    <referencing_class> olan nvarchar(60).

Dönen Tablo

Sütun adı

Veri türü

Açıklama

referencing_minor_id

int

Bir sütuna başvuru varlık ise sütun KIMLIĞI; aksi durumda 0.Null değil.

referenced_server_name

sysname

Başvurulan sunucunun adını varlık.

Bu sütun, geçerli bir four-part ad belirterek yapılan çapraz sunucu bağımlılıklar için doldurulur.Çok parçalı adları hakkında daha fazla bilgi için bkz: Transact-SQL sözdizimi kuralları (Transact-SQL).

NULL olmayan-şemaya bağlı bağımlılıklar kendisi için bir four-part ad belirtmeden varlık başvuruldu.

Aynı veritabanında olmalıdır ve bu nedenle yalnızca kullanılarak bir iki bölümü (tanımlanabilir şemaya bağlı varlıklar için NULL.Schema.Object) adı.

referenced_database_name

sysname

Başvurulan veritabanı adını varlık.

Bu sütun, geçerli bir üç bölümlü ya da four-part ad belirterek yapılan geçici veritabanı veya sunucu çapraz başvurular için doldurulur.

Bir parça veya iki bölümlü bir ad kullanılarak belirtildiğinde olmayan-şemaya bağlı başvurular için NULL.

Aynı veritabanında olmalıdır ve bu nedenle yalnızca kullanılarak bir iki bölümü (tanımlanabilir şemaya bağlı varlıklar için NULL.Schema.Object) adı.

referenced_schema_name

sysname

Başvurulan varlık olduğu şema.

NULL olmayan-şemaya bağlı başvurusu,'için şema adı belirtmeden varlık başvuruldu.

Hiçbir zaman şemaya bağlı başvurular için NULL.

referenced_entity_name

sysname

Başvurulan adı varlık.Null değil.

referenced_minor_name

sysname

Sütun adı, başvurulan varlık bir sütunu; aksi halde NULL.Örneğin, referenced_minor_name başvurulan varlık listeler satırda NULL olur.

Başvurulan bir varlık bir sütun olduğunda bir sütun başvuru varlık veya üst varlık bir SELECT kullanıldığında adıyla tanımlanır * deyim.

referenced_id

int

Başvurulan varlık KIMLIĞI.Sütun tanımlandığı varlık referenced_minor_id değil, 0, referenced_id olduğu durumdur.

Her zaman sunucu çapraz başvurular için NULL.

null veritabanı çevrimdışı olduğundan KIMLIĞI belirlenemiyor, geçici veritabanı başvuruları veya varlık bağlanamaz.

Başvuru KIMLIĞI belirlenemiyor, veritabanındaki için NULL.Non-şemaya bağlı başvurusu, aşağıdaki durumlarda KIMLIĞI çözümlenemiyor:

  • Başvurulan varlık veritabanında yok.

  • Arayanın bağımlı ad çözümlemesidir.Bu durum, is_caller_dependent 1 olarak küme.

Hiçbir zaman şemaya bağlı başvurular için NULL.

referenced_minor_id

int

Sütun KIMLIĞI; sütun başvurulan varlık, aksi durumda, 0.Örneğin, referenced_minor_is başvurulan varlık listeler sırada 0'dır.

Yalnızca tüm başvurulan varlıklara bağlı, non-şemaya bağlı başvurusu, sütun bağımlılıklar raporlanır.Başvurulan her bir varlýk bağlı hiçbir sütun düzey bağımlılıklar bildirilir ve referenced_minor_id 0'dır.Örnek D Bkz:

referenced_class

tinyint

Sınıf başvurulan varlık.

1 = Nesne ya da sütun

6 = Türü

10 XML şema koleksiyon =

21 Bölüm işlev =

referenced_class_desc

nvarchar(60)

Başvurulan varlık sınıf tanımı.

object_or_column

TÜRÜ

xml_schema_collection

partition_function

is_caller_dependent

bit

Başvurulan varlık çalışma sırasında ortaya için şema cilt payı gösterir saat; bu nedenle, çözümleme varlığın KIMLIĞI, arayanın şemada bağlıdır.genişletilmiş saklı yordam veya kullanıcı tanımlı bir saklı yordam, başvurulan varlık bu oluşur işlev yürütmek deyim içinde denir.

1 Başvurulan = varlık arayanın bağımlı olduğu ve çalışma sırasında çözümlenen saat.Bu durumda, referenced_id NULL olur.

0 Başvurulan varlık KIMLIĞI değil = arayan bağımlı.Şemaya bağlı her zaman 0 başvurur ve, açıkça geçici veritabanı ve sunucu çapraz başvuru için bir şema adı belirtin.Örneğin, biçimdeki bir varlık başvurusu EXEC MyDatabase.MySchema.MyProc Arayanın bağımlı değildir. Ancak, başvuru biçimi EXEC MyDatabase..MyProc Arayanın bağlıdır.

is_ambiguous

bit

Başvuru belirsiz ve kullanıcı tanımlı bir işlev, kullanıcı tanımlı tür (UDT) veya bir xquery başvuru türünde bir sütuna çalışma zamanında çözümleyebilirsiniz gösterir. xml. Örneğin, deyim varsayalım. SELECT Sales.GetOrder() FROM Sales.MySales saklı yordam içinde tanımlanır. saklı yordam yürütülme kadar bilinmiyor olup olmadığını Sales.GetOrder() bir kullanıcı tanımlı işlev Sales şema veya adlı sütun Sales tür UDT adlı bir yöntem GetOrder().

1 Kullanıcı tanımlı fonksiyon veya sütun başvurusu = kullanıcı tanımlı tür (UDT) yöntem belirsiz.

0 = işlev çağrıldığında varlık başarıyla bağlanabilir ya da belirli başvurudur.

Her zaman 0 şemaya bağlı başvuruları.

Exceptions

Aşağıdaki koşullar altında istediklerinizi ayarlayın, boş bir sonuç döndürür:

  • Bir sistem nesnesi belirtildi.

  • Belirtilen varlık geçerli veritabanında yok.

  • Belirtilen varlık, herhangi bir varlık başvuru yapmıyor.

  • Geçersiz bir parametre geçirildi.

Belirtilen başvuru varlık numaralı saklı yordam olduğunda hata verir.

Sütun bağımlılıklar, çözümlenemeyen 2020 hatasını verir.Bu hata, sorgu nesnesini döndüren gelen engellemez düzey bağımlılıklar.Daha fazla bilgi için bkz:Sorun giderme SQL bağımlılıklar.

Remarks

Bu işlev, başvuru sunucusu-düzey DDL tetikleyicisi varlıkları dönmek için tüm veritabanı bağlamında çalıştırılır.

Aşağıdaki tabloda, kendisi için bağımlılık bilgileri oluşturulan saklanır ve varlık türlerini listeler.Bağımlılık bilgilerini değil oluşturulduğunda veya kuralları, varsayılanlar, geçici tablo, geçici saklı yordamlar veya sistem nesneleri sürdürülür.

Varlık türü

Başvuru Varlık

Başvurulan varlık

Table

Yes *

Evet

Görünümü

Evet

Evet

Transact-SQL saklı yordam **

Evet

Evet

CLR saklı yordamı

Hayır

Evet

Transact-SQL Kullanıcı tanımlı fonksiyon

Evet

Evet

CLR kullanıcı tanımlı fonksiyon

Hayır

Evet

CLR tetikleyicisi (DML ve DDL)

Hayır

Hayır

Transact-SQL DML tetikleyicisi

Evet

Hayır

Transact-SQL Veritabanı düzey DDL tetikleyicisi

Evet

Hayır

Transact-SQL sunucu düzeyinde DDL tetikleyicisi

Evet

Hayır

Genişletilmiş saklı yordamlar

Hayır

Evet

Sıra

Hayır

Evet

Veri türünün eşanlamlısı

Hayır

Evet

Tür (diğer ad ve CLR kullanıcı tanımlı tür)

Hayır

Evet

XML şema koleksiyon

Hayır

Evet

bölümleme işlev

Hayır

Evet

* Tablo yalnızca başvuru, başvuru bir varlık olarak izlenir bir Transact-SQL Modül, tür kullanıcı tanımlı veya hesaplanan sütun tanımı XML şema koleksiyonunda kısıtlama CHECK veya kısıtlama DEFAULT.

** 1 Ya da bir başvuru veya başvurulan varlık olarak izlenen daha büyük bir tamsayı olan saklı yordamlar numaralandırılır.

Daha fazla bilgi için bkz:SQL Bağımlılıklar'ı anlama.

İzinler

Görünüm TANıMıNı iznine başvuru varlık sys.dm_sql_referenced_entities SELECT izni gerektirir.Varsayılan olarak, ortak SELECT izni verilir.Başvuru Varlık veritabanı düzey DDL tetikleyicisi olduğunda, GÖRÜNÜM TANıMıNı veritabanı iznine veya veritabanı ALTER DATABASE DDL tetikleyicisi izni gerektirir.Başvuru Varlık sunucu düzeyinde DDL tetikleyicisi olduğunda, sunucudaki GÖRÜNÜM ANY TANıMı izni gerektirir.

Örnekler

C.Bir veritabanı düzey DDL tetikleyicisi tarafından başvurulan bir varlık olarak döndürülüyor

Aşağıdaki örnek veritabanı düzey DDL tetikleyicisi tarafından başvurulan varlıkları (tablolar ve sütunlar) verir... ddlDatabaseTriggerLog.

b.Bir nesne tarafından başvurulan bir varlık olarak döndürülüyor

Aşağıdaki örnek kullanıcı tanımlı işlev tarafından başvurulan varlıkları verir... dbo.ufnGetContactInformation.

c.Sütun bağımlılıklar döndürülüyor

Aşağıdaki örnek, tablo oluşturur. Table1 hesaplanan sütun ile c sütun toplamı olarak tanımlı. a ve b. The sys.dm_sql_referenced_entities view is then called.Görünüm, hesaplanan sütun içinde tanımlanan her sütuna ilişkin iki satır döndürür.

Here is the result set.

schema_name table_name referenced_column referencing_column

----------- ---------- ----------------- ------------------

dbo Table1 bir c

dbo Table1 b c

d.Non-şemaya bağlı sütun bağımlılıklar döndürülüyor

Aşağıdaki örnek keser. Table1 oluşturur Table2 ve saklı yordam Proc1. Yordam başvuruları Table2 ve tablo Table1. Görünümü sys.dm_sql_referenced_entities ile çalıştırılan saklı yordam başvuru varlık olarak belirtildi. Sonuç küme için bir satır gösterir. Table1 ve Table2. Çünkü Table1 yok, sütun bağımlılık çözülemiyor ve 2020 hata döndürdü.

e.Dinamik bir bağımlılık bakım gösteren

Aşağıdaki örnek, bağımlılıklar dinamik olarak sürdürülür göstermek için örnek D genişletir.Ilk örnekte yeniden oluşturur Table1, hangi örneği d içinde kesildi. Sonra sys.dm_sql_referenced_entities ile yeniden çalıştırın saklı yordam başvuru varlık olarak belirtildi. Sonuç tablolar'ı ve saklı yordamda tanımlanan, ilgili sütun döndürüldüğünü gösterir ayarlayın.

Here is the result set.

referenced_id table_name, sütun_adı

-------------  ----------- -----------

2139154566 NULL Table1

2139154566 Table1 bir

2139154566 Table1 b

2139154566 Table1 c

2707154552 NULL Table2

2707154552 Table2 c1

2707154552 Table2 c2

Değişiklik Geçmişi

Güncelleştirilmiş içerik

"Sütun bağımlılığı CLR tablo değerli işlevler için izlenmez" deyim, açıklamalar bölümünden kaldırıldı.

Veri türü düzeltildi referencing_entity_name parametre.