Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Minden egyes entitáshoz egy sort ad vissza az aktuális adatbázisban, amely egy másik felhasználó által definiált entitásra hivatkozik név szerint. Két entitás közötti függőség akkor jön létre, amikor az egyik entitás, az úgynevezett hivatkozott entitás, név szerint megjelenik egy másik entitás állandó SQL kifejezésében, az úgynevezett referencia entitásban. Például, ha egy felhasználó által definiált típust (UDT) jelölnek meg hivatkozott entitásként, ez a függvény minden felhasználódefiniált entitást visszaad, amely a definíciójában név szerint hivatkozik erre a típusra. A függvény nem ad vissza olyan entitásokat más adatbázisokban, amelyek hivatkozhatnak a megadott entitásra. Ezt a függvényt a master adatbázis kontextusában kell végrehajtani, hogy szerverszintű DDL trigger referenciás entitásként visszajusson.
Ezt a dinamikus menedzsment funkciót használhatod arra, hogy a jelenlegi adatbázisban a következő típusú entitásokról számolj be, amelyek hivatkoznak a megadott entitásra:
Séma-kötött vagy nem séma-kötött entitások
Adatbázis-szintű DDL triggerek
Szerverszintű DDL triggerek
Érvényes: SQL Server (SQL Server 2008 (10.0.x) és újabbabb), SQL Database.
Transact-SQL szintaxis konvenciók
Szemantika
sys.dm_sql_referencing_entities (
' schema_name.referenced_entity_name ' , ' <referenced_class> ' )
<referenced_class> ::=
{
OBJECT
| TYPE
| XML_SCHEMA_COLLECTION
| PARTITION_FUNCTION
}
Arguments
schema_name.referenced_entity_name Ez a hivatkozott entitás neve.
schema_name kötelező, kivéve, ha a hivatkozott kurzus PARTITION_FUNCTION.
schema_name.referenced_entity_name
Nvarchar(517).
<referenced_class> ::= { OBJECT | TYPE | XML_SCHEMA_COLLECTION | PARTITION_FUNCTION } Ez a hivatkozott entitás osztálya. Egy állításhoz csak egy osztály lehet megadni.
<referenced_class>
nvarchar(60).
Visszaadott tábla
| Oszlop név | Adattípus | Description |
|---|---|---|
| referencing_schema_name | sysname | Séma, amelybe a hivatkozó entitás is tartozik. Null értékű. NULL adatbázis- és szerverszintű DDL triggerekhez. |
| referencing_entity_name | sysname | A hivatkozó entitás neve. Nem lehet null értékű. |
| referencing_id | int | A hivatkozó entitás azonosítója. Nem lehet null értékű. |
| referencing_class | tinyint | Az utaló entitás osztálya. Nem lehet null értékű. 1 = Objektum 12 = Adatbázis-szintű DDL trigger 13 = Szerverszintű DDL trigger |
| referencing_class_desc | nvarchar(60) | A hivatkozó entitás osztályának leírása. OBJECT DATABASE_DDL_TRIGGER SERVER_DDL_TRIGGER |
| is_caller_dependent | bit | Azt jelzi, hogy a hivatkozott entitás azonosítójának felbontása futásidőben történik, mert a hívó sémájától függ. 1 = A hivatkozó entitás képes hivatkozni az entitásra; azonban a hivatkozott entitás azonosítójának felbontása hívótól függ, és nem határozható meg. Ez csak nem séma-kötött hivatkozások esetén fordul elő tárolt eljárásra, kiterjesztett tárolt eljárásra vagy a EXECUTE utasításban meghívott felhasználó által definiált függvényre. 0 = A hivatkozott entitás nem függ hívótól. |
Exceptions
Üres eredményhalmazt ad vissza az alábbi feltételek bármelyike esetén:
Rendszerobjektum van megadva.
A megadott entitás nem létezik a jelenlegi adatbázisban.
A megadott entitás nem hivatkozik semmilyen entitásra.
Egy érvénytelen paramétert továbbítunk.
Hibát ad vissza, ha a megadott hivatkozott entitás egy számozott tárolt eljárás.
Megjegyzések
Az alábbi táblázat felsorolja azokat az entitástípusokat, amelyekhez a függőségi információkat hozják létre és karbantartják. Függőségi információkat nem hoznak létre vagy karbantartanak szabályokhoz, alapértelmezettekhez, ideiglenes táblákhoz, ideiglenes tárolt eljárásokhoz vagy rendszerobjektumokhoz.
| Entitástípus | Referencing entity | Hivatkozott entitás |
|---|---|---|
| Táblázat | Igen* | Igen |
| View | Igen | Igen |
| Transact-SQL tárolt eljárás** | Igen | Igen |
| CLR tárolt eljárás | Nem | Igen |
| Transact-SQL felhasználó által definiált függvény | Igen | Igen |
| CLR felhasználó által definiált függvény | Nem | Igen |
| CLR trigger (DML és DDL) | Nem | Nem |
| Transact-SQL DML trigger | Igen | Nem |
| Transact-SQL adatbázis-szintű DDL trigger | Igen | Nem |
| Transact-SQL szerver szintű DDL trigger | Igen | Nem |
| Kiterjesztett tárolt eljárások | Nem | Igen |
| Várólista | Nem | Igen |
| Synonym | Nem | Igen |
| Típus (alias és CLR felhasználó által definiált típus) | Nem | Igen |
| XML-sémagyűjtemény | Nem | Igen |
| Partíciós függvény | Nem | Igen |
* Egy táblázatot csak akkor követnek referenciaentitásként, ha egy Transact-SQL modulra, felhasználó által definiált típusra vagy XML sémagyűjteményre hivatkozik egy számított oszlop, CHECK korlátozás vagy DEFAULT korlátozás definíciójában.
** Az egész szám értékű 1-nél nagyobb számú tárolt eljárásokat nem követik sem hivatkozó, sem hivatkozott entitásként.
Permissions
SQL Server 2008 (10.0.x) - SQL Server 2012 (11.x)
A hivatkozott objektumon CONTROL engedélyt igényel. Ha a hivatkozott entitás egy partíciófüggvény, control engedélyre van szükség az adatbázisban.
A sys.dm_sql_referencing_entities-n SELECT engedély szükséges. Alapértelmezés szerint a SELECT engedély nyilvános.
SQL Server 2014 (12.x) és újabbá
Nem igényel engedélyt a hivatkozott objektumra. Részleges eredmények akkor is visszaadhatók, ha a felhasználó csak néhány hivatkozó entitáson rendelkezik VIEW DEFINITION-val.
Szükség van a VIEW DEFINITION (VIEW DEFINITION) objektumra, ha a hivatkozó entitás objektum.
Megköveteli a VIEW DEFINITION (VIEW DEFINITION) az adatbázisban, ha a hivatkozó entitás adatbázis-szintű DDL trigger.
Megköveteli az VIEW ANY DEFINITION funkciót a szerveren, ha a hivatkozó entitás szerverszintű DDL trigger.
Példák
A. Azoknak az entitásoknak a visszaküldése, amelyek egy adott entitásra utalnak
A következő példa adja vissza azokat az entitásokat az aktuális adatbázisban, amelyek a megadott táblára hivatkoznak.
USE AdventureWorks2022;
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. A megadott típusra utaló entitások visszaküldése
A következő példa adja vissza azokat az entitásokat, amelyek az alias típusra dbo.Flaghivatkoznak. Az eredményhalmaz azt mutatja, hogy két tárolt eljárás használja ezt a típust. A dbo.Flag típust több oszlop definíciójában is használják a HumanResources.Employee táblázatban; azonban mivel a típus nem szerepel a táblázatban található kiszámított oszlop, CHECK korlátozás vagy DEFAULT korlátozás definíciójában, a táblázathoz nem térnek HumanResources.Employee vissza sorok.
USE AdventureWorks2022;
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
Itt van az eredmények összessége.
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)`
Lásd még:
sys.dm_sql_referenced_entities (Transact-SQL)
sys.sql_expression_dependencies (Transact-SQL)