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.
Vonatkozik a következőkre:SQL ServerAzure
SQL Managed InstanceAzure
Synapse AnalyticsSQL
analytics endpoint in Microsoft FabricWarehouse
in Microsoft Fabric
Egy sort tartalmaz az aktuális adatbázisban lévő, felhasználó által definiált entitás minden egyes névfüggőségéhez. Ez magában foglalja a natívan lefordított, a skaláris felhasználó által definiált függvények és más SQL Server-modulok közötti függőségeket. Két entitás közötti függőség akkor jön létre, ha az egyik entitás, az úgynevezett hivatkozott entitás, név szerint jelenik meg egy másik entitás egy megőrzött SQL-kifejezésében, az úgynevezett hivatkozó entitás. Ha például egy tábla egy nézet definíciójában szerepel, a nézet hivatkozási entitásként a táblától, a hivatkozott entitástól függ. Ha a tábla el van dobva, a nézet használhatatlan.
További információ: Skaláris User-Defined Functions for In-Memory OLTP.
Ez a katalógusnézet a következő entitások függőségi adatainak jelentésére használható:
Sémaalapú entitások.
Nem sémaalapú entitások.
Adatbázisközi és kiszolgálóközi entitások. A szervezetek nevei jelenthetők; azonban az entitás azonosítók nem oldódnak meg.
Oszlopszintű függőségek sémaalapú entitásokon. A nem sémához kötött objektumok oszlopszintű függőségei sys.dm_sql_referenced_entitieshasználatával adhatóak vissza.
A szerverszintű DDL trigger, amikor az
masteradatbázis kontextusában van.
| Oszlop neve | Adattípus | Leírás |
|---|---|---|
referencing_id |
A hivatkozó entitás azonosítója. Nem nullázható. | |
referencing_minor_id |
Oszlopazonosító, ha a hivatkozási entitás oszlop; egyéb esetben 0. Nem nullázható. | |
referencing_class |
apró | A hivatkozó entitás osztálya.1 = Objektum vagy oszlop12 = Adatbázis DDL trigger13 = Szerver DDL triggerNem nullázható. |
referencing_class_desc |
nvarchar(60) | A hivatkozási entitás osztályának leírása.OBJECT_OR_COLUMNDATABASE_DDL_TRIGGERSERVER_DDL_TRIGGERNem nullázható. |
is_schema_bound_reference |
bit |
1 = A hivatkozott entitás sémához kötött.0 = A hivatkozott entitás nem sémához kötött.Nem nullázható. |
referenced_class |
apró | A hivatkozott entitás osztálya.1 = Objektum vagy oszlop6 = Típus7 = Index10 = XML sémagyűjtemény21 = Partíciós függvényNem nullázható. |
referenced_class_desc |
nvarchar(60) | A hivatkozott entitás osztályának leírása.OBJECT_OR_COLUMNTYPEINDEXXML_SCHEMA_COLLECTIONPARTITION_FUNCTIONNem nullázható. |
referenced_server_name |
sysname | A hivatkozott entitás kiszolgálójának neve. Ez az oszlop egy érvényes négyrészes név megadásával ki van töltve a kiszolgálóközi függőségek esetében. A többrészes nevekről további információt Transact-SQL szintaxiskonvenciák. NULL nem sémához kötött entitásokra, amelyekhez az entitást négyrészes név megadása nélkül hivatkozták.NULL sémához kötött entitások esetén, mert ugyanabban az adatbázisban kell legyenek, így csak kétrészes (séma.objektum) néven definiálhatók. |
referenced_database_name |
sysname | A hivatkozott entitás adatbázisának neve. Ez az oszlop adatbázisközi vagy kiszolgálóközi hivatkozásokhoz van feltöltve, amelyek egy érvényes háromrészes vagy négyrészes név megadásával jönnek létre. NULL nem séma-kötött hivatkozásokhoz, ha egy- vagy kétrészes néven van megadva.NULL sémához kötött entitások esetén, mert ugyanabban az adatbázisban kell legyenek, így csak kétrészes (séma.tárgy) név. |
referenced_schema_name |
sysname | Séma, amelyhez a hivatkozott entitás tartozik.NULL nem séma-kötött hivatkozásokhoz, amelyekben az entitást a séma név megadása nélkül használták.Soha NULL nem a séma-kötött hivatkozásoknál, mert a séma-kötött entitásokat kétrészes név használatával kell definiálni és hivatkozni. |
referenced_entity_name |
sysname | A hivatkozott entitás neve. Nem nullázható. |
referenced_id |
A hivatkozott entitás azonosítója. Ennek az oszlopnak az értéke soha NULL nem vonatkozik sémához kötött hivatkozásokra. Ennek az oszlopnak az értéke mindig NULL szerver- és adatbázis-hivatkozásokra vonatkozik.NULL az adatbázison belüli hivatkozásokhoz, ha az azonosító nem határozható meg. Nem séma-kötött hivatkozások esetén az ID nem oldható meg az alábbi esetekben:A hivatkozott entitás nem létezik az adatbázisban. A hivatkozott entitás sémája a hívó sémájától függ, és futásidőben lesz feloldva. Ebben az esetben a is_caller_dependent értéke 1. |
|
referenced_minor_id |
A hivatkozott oszlop azonosítója, ha a hivatkozási entitás oszlop; egyéb esetben 0. Nem nullázható. A hivatkozott entitás olyan oszlop, amely egy oszlopot név alapján azonosít a hivatkozási entitásban, vagy ha a szülő entitást egy SELECT * utasításban használja a rendszer. |
|
is_caller_dependent |
bit | Azt jelzi, hogy a hivatkozott entitás sémakötése futásidőben történik; Ezért az entitásazonosító feloldása a hívó sémájától függ. Ez akkor fordul elő, ha a hivatkozott entitás egy tárolt eljárás, egy kiterjesztett tárolt eljárás vagy egy nem sémaalapú, felhasználó által definiált függvény, amelyet egy EXECUTE utasítás hív meg.1 = A hivatkozott entitás hívófüggő, és futásidőben oldódik. Ebben az esetben referenced_id .NULL0 = A hivatkozott entitásazonosító nem függ a hívótól.Mindig 0 a sémaalapú hivatkozásokhoz, valamint az adatbázisközi és kiszolgálóközi hivatkozásokhoz, amelyek explicit módon megadják a séma nevét. Például egy entitásra vonatkozó hivatkozás a formátumban EXEC MyDatabase.MySchema.MyProc nem függ a hívótól. A EXEC MyDatabase..MyProc formátumú hivatkozás azonban hívófüggő. |
is_ambiguous |
bit | Azt jelzi, hogy a hivatkozás kétértelmű, és futásidőben megoldható egy felhasználó által definiált függvényre, egy felhasználó által definiált típusra (UDT) vagy egy XQuery hivatkozásra egy xml típusú oszlopra. Tegyük fel például, hogy a SELECT Sales.GetOrder() FROM Sales.MySales utasítás egy tárolt eljárásban van definiálva. Amíg a tárolt eljárás el nem hajtják végre, nem ismert, hogy Sales.GetOrder() a sémában egy felhasználó által definiált függvény Sales vagy Sales oszlop van-e UDT típusú, egy metódussal .GetOrder()1 = A hivatkozás kétértelmű.0 = A hivatkozás egyértelmű, vagy az entitás sikeresen korlátozható, amikor a nézetet meghívják.Mindig 0 a séma által kötött hivatkozásokhoz. |
Megjegyzések
Az alábbi táblázat azokat az entitástípusokat sorolja fel, amelyekhez függőségi információkat hoz létre és tart fenn. 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.
Jegyzet
Azure Synapse Analytics támogatja a táblákat, nézeteket, szűrt statisztikákat és Transact-SQL tárolt eljárástípusokat ebből a listából. A függőségi adatok csak táblákhoz, nézetekhez és szűrt statisztikákhoz jönnek létre és tarthatók fenn.
| Entitás típusa | Hivatkozási entitás | Hivatkozott entitás |
|---|---|---|
| Asztal | Igen1 | Igen |
| Nézet | Igen | Igen |
| Szűrt index | Igen2 | Nem |
| Szűrt statisztikák | Igen2 | Nem |
| Transact-SQL tárolteljárás 3 | 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-eseményindító (DML és DDL) | Nem | Nem |
| Transact-SQL DML-eseményindító | Igen | Nem |
| adatbázisszintű DDL-eseményindító Transact-SQL | Igen | Nem |
| Transact-SQL kiszolgálószintű DDL-eseményindító | Igen | Nem |
| Kiterjesztett tárolt eljárások | Nem | Igen |
| Sor | Nem | Igen |
| Szinonima | 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ófüggvény | Nem | Igen |
1 Egy táblát 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 kiszámított oszlop, CHECK korlátozás vagy DEFAULT korlátozás definíciójában.
2 A szűrőpredikátumban használt oszlopot referencia entitásként követik.
3 Az egész szám értéküknél nagyobb 1-nél nagyobb számú tárolt eljárásokat sem hivatkozó, sem hivatkozott entitásként nem követik nyomon követést.
Engedélyek
Szükség VIEW van DEFINITION engedélyre az adatbázison és SELECT sys.sql_expression_dependencies engedélyt az adatbázisban. Alapértelmezés szerint a SELECT engedély csak a db_owner rögzített adatbázis-szerepkör tagjai számára van megadva. Ha a SELECT és VIEW a DEFINITION engedélyeket egy másik felhasználó kapja meg, a jogosult megtekintheti az adatbázisban lévő összes függőséget.
Példák
Egy. Visszatérítési entitások, amelyeket más entitás hivatkozik
Az alábbi példa a nézetben hivatkozott táblákat és oszlopokat adja vissza Production.vProductAndDescription. A nézet a referenced_entity_name és referenced_column_name oszlopokban visszaadott entitásoktól (tábláktól és oszlopoktól) függ.
USE AdventureWorks2022;
GO
SELECT
OBJECT_NAME(referencing_id) AS referencing_entity_name,
o.type_desc AS referencing_description,
COALESCE (COL_NAME(referencing_id, referencing_minor_id), '(n/a)') AS referencing_minor_id,
referencing_class_desc,
referenced_server_name,
referenced_database_name,
referenced_schema_name,
referenced_entity_name,
COALESCE (COL_NAME(referenced_id, referenced_minor_id), '(n/a)') AS referenced_column_name,
is_caller_dependent,
is_ambiguous
FROM sys.sql_expression_dependencies AS sed
INNER JOIN sys.objects AS o
ON sed.referencing_id = o.object_id
WHERE referencing_id = OBJECT_ID(N'Production.vProductAndDescription');
B. Visszatérítési entitások, amelyek más entitásra hivatkoznak
Az alábbi példa a Production.Producttáblára hivatkozó entitásokat adja vissza. A referencing_entity_name oszlopban visszaadott entitások a Product táblától függenek.
USE AdventureWorks2022;
GO
SELECT
OBJECT_SCHEMA_NAME(referencing_id) AS referencing_schema_name,
OBJECT_NAME(referencing_id) AS referencing_entity_name,
o.type_desc AS referencing_description,
COALESCE (COL_NAME(referencing_id, referencing_minor_id), '(n/a)') AS referencing_minor_id,
referencing_class_desc,
referenced_class_desc,
referenced_server_name,
referenced_database_name,
referenced_schema_name,
referenced_entity_name,
COALESCE (COL_NAME(referenced_id, referenced_minor_id), '(n/a)') AS referenced_column_name,
is_caller_dependent,
is_ambiguous
FROM sys.sql_expression_dependencies AS sed
INNER JOIN sys.objects AS o
ON sed.referencing_id = o.object_id
WHERE referenced_id = OBJECT_ID(N'Production.Product');
C. Keresztadatbázis-függőségek visszaadása
Az alábbi példa az adatbázisközi függőségeket adja vissza. A példa először létrehozza az adatbázist db1 és két tárolt eljárást, amelyek az adatbázisok tábláira hivatkoznak db2 és db3. A sys.sql_expression_dependencies tábla ezután lekérdezve jelenti az eljárások és a táblák közötti adatbázisközi függőségeket.
NULLvisszaadja a hivatkozott entitás referenced_schema_name oszlopábant3, mert az eljárás definíciójában nincs megadva séma neve az adott entitásra.
CREATE DATABASE db1;
GO
USE db1;
GO
CREATE PROCEDURE p1 AS
SELECT * FROM db2.s1.t1;
GO
CREATE PROCEDURE p2 AS
UPDATE db3..t3
SET c1 = c1 + 1;
GO
SELECT
OBJECT_NAME(referencing_id),
referenced_database_name,
referenced_schema_name,
referenced_entity_name
FROM sys.sql_expression_dependencies
WHERE referenced_database_name IS NOT NULL;
GO
USE master;
GO
DROP DATABASE db1;