sys.dm_SQL_referencing_entities (Transact-SQL)
Geçerli veritabanında adıyla başka bir kullanıcı tarafından tanımlanan varlık başvuran her varlık için bir satır döndürür.İki varlık arasında bir bağımlılık adı verilen bir varlıkoluşturulduğunda başvurulan varlık, adı başka bir varlıkolarak adlandırılan, kalıcı bir SQLifade olarak görüntülenen varlıkbaşvuran. Örneğin, bir kullanıcı tanımlı tür (UDT) başvurulan varlıkolarak belirtilirse, bu işlev türü tanımı adı başvuran her kullanıcı tanımlı varlık verir.işlev , belirtilen varlıkbaşvuruda bulunabilir diğer veritabanlarında varlıkları döndürmez.Bu işlev bağlamında yürütülmelidir master server -düzey DDL tetikleyici bir başvuru varlıkolarak dönmek için veritabanını.
Bu dinamik yönetim işlevi geçerli veritabanında belirtilen varlıkbaşvurusu varlıkları aşağıdaki türlerini bildirmek için kullanabilirsiniz:
Şemaya bağlı veya olmayan-şemaya bağlı varlıklar
Veritabanıdüzey DDL tetikler.
Sunucudüzey DDL tetikler.
Sözdizimi
sys.dm_sql_referencing_entities (
' schema_name.referenced_entity_name ' , ' <referenced_class> ' )
<referenced_class> ::=
{
OBJECT
| TYPE
| XML_SCHEMA_COLLECTION
| PARTITION_FUNCTION
}
Bağımsız değişkenler
schema_name.referenced_entity_name
Başvurulan varlıkadı olur.schema_nameBaşvurulan sınıf PARTITION_FUNCTION olduğunda dışında gereklidir.
schema_name.referenced_entity_nameis nvarchar(517).
<referenced_class> :: = {nesne | TYPE | XML_SCHEMA_COLLECTION | {PARTITION_FUNCTION}
Başvurulan varlıksınıfıdır.Yalnızca bir sınıf deyimbelirtilebilir.<referenced_class>is nvarchar(60).
Dönen Tablo
Sütun adı |
Veri türü |
Açıklama |
---|---|---|
referencing_schema_name |
sysname |
Başvuru varlık olduğu şema.NULL olur. Veritabanıdüzey ve server -düzey DDL Tetikleyiciler null. |
referencing_entity_name |
sysname |
Başvuru varlıkadı.Nullable değil. |
referencing_id |
int |
Başvuru varlıkkimliği.Nullable değil. |
referencing_class |
tinyint |
Başvuru varlıksınıf.Nullable değil. 1 = Nesne 12 - Veritabanıdüzey DDL tetikleyici = 13 - Sunucudüzey DDL tetikleyici = |
referencing_class_desc |
nvarchar(60) |
varlıkbaşvuran sınıf açıklaması. NESNE DATABASE_DDL_TRIGGER SERVER_DDL_TRIGGER |
is_caller_dependent |
bit |
Arayanın şemasına bağlıdır için başvurulan varlık kimliği çözümlenmesi çalışma saat sırasında oluşur gösterir. 1 = Başvuru varlık varlık; referans olma olasılığı vardır Ancak başvurulan varlık kimliği çözüm arayan bağımlı ve belirlenemez.Yalnızca bir saklı yordam, şemaya bağlı başvuruları için böyle bir execute deyim genişletilmiş saklı yordamveya kullanıcı tanımlı işlev denir. 0 = Başvurulan varlık arayan bağımlı değildir. |
Kural dışı durumlar
Bir boş sonuç kümesi altında aşağıdaki koşullardan birini verir:
Sistem nesnesi belirtilir.
Belirtilen varlık geçerli veritabanında yok.
Belirtilen varlık herhangi varlıkları başvuru yapmıyor.
Geçersiz bir parametre geçirildi.
Belirtilen varlık başvurulduğunda hata numaralandırılmış bir saklı yordamverir.
Açıklamalar
Aşağıdaki tablo , hangi için bağımlılık bilgileri oluşturulan ve bakımını varlıkları türlerini listeler.Bağımlılık bilgilerini oluşturulan veya olmayan kuralları, varsayılanlar, geçici tablolar, geçici saklı yordamlar veya sistem nesneleri için saklanır.
Varlık türü |
varlıkbaşvuran |
Başvurulan varlık |
---|---|---|
Tablo |
Evet * |
Evet |
Görünüm |
Evet |
Evet |
Transact-SQL saklı yordam** |
Evet |
Evet |
CLR saklı yordamı |
Hayır |
Evet |
Transact-SQLkullanıcı tanımlı işlev |
Evet |
Evet |
clr kullanıcı tanımlı işlev |
Hayır |
Evet |
CLR tetikleyicisi (DML ve DDL) |
Hayır |
Hayır |
Transact-SQL DML tetikleyici |
Evet |
Hayır |
Transact-SQL-Veritabanıdüzey DDL tetikleyici |
Evet |
Hayır |
Transact-SQLServer -düzey DDL tetikleyici |
Evet |
Hayır |
Genişletilmiş saklı yordamları |
Hayır |
Evet |
Sıra |
Hayır |
Evet |
Eşanlamlı |
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üm işlev |
Hayır |
Evet |
* Yalnızca başvurduğu zaman tablo bir varlık başvuru olarak izlenen bir Transact-SQL modülü, kullanıcı tanımlı türveya hesaplanmış bir sütuntanımında xml şema koleksiyon DENETLEME kısıtlaması veya default kısıtlaması.
** 1 Ya da bir başvuru veya başvurulan varlıkolarak izlenmez den büyük bir tamsayı değeri saklı yordamlarda numaralandırılmış.
Daha fazla bilgi için, bkz. sql bağımlılıklar anlama.
İzinler
Üzerinde denetim üzerinde başvurulan varlık ve select izni gerektirir sys.dm_sql_referencing_entities.Başvurulan varlık bir bölüm işlevolduğunda, veritabanı üzerinde denetim izni gereklidir.Varsayılan olarak, select izni public.
Örnekler
A.Verilen varlıkbaşvuran varlıkları döndürme
Aşağıdaki örnek, geçerli veritabanında belirtilen tablobaşvurun varlıkları verir.
USE AdventureWorks2008R2;
GO
SELECT referencing_schema_name, referencing_entity_name, referencing_id, referencing_class_desc, is_caller_dependent
FROM sys.dm_sql_referencing_entities ('Production.Product', 'OBJECT');
GO
B.Belirli bir türde başvuruda varlıkları döndürme
Aşağıdaki örnek, diğer ad başvuru varlıkları verir dbo.Flag.sonuç kümesi için iki saklı yordamda bu türü kullanın gösterir.dbo.Flag Türü birkaç sütun tanımında kullanılan de HumanResources.Employeetablo; türü hesaplanan sütun, denetim kısıtlamasını veya tablovarsayılan kısıtlama tanımı olmadığı için ancak hiçbir satır için döndürülen HumanResources.Employee tablo.
USE AdventureWorks2008R2;
GO
SELECT referencing_schema_name, referencing_entity_name, referencing_id, referencing_class_desc, is_caller_dependent
FROM sys.dm_sql_referencing_entities ('dbo.Flag', 'TYPE');
GO
Sonuç kümesi buradadır.
referencing_schema_name referencing_entity_name referencing_id referencing_class_desc is_caller_dependent
----------------------- ------------------------- ------------- ---------------------- -------------------
HumanResources uspUpdateEmployeeHireInfo 1803153469 OBJECT_OR_COLUMN 0
HumanResources uspUpdateEmployeeLogin 1819153526 OBJECT_OR_COLUMN 0
(2 row(s) affected)
Ayrıca bkz.