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:
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. |
See Also