Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
Returnerar en rad för varje entitet i den aktuella databasen som refererar till en annan användardefinierad enhet med namn. Ett beroende mellan två entiteter skapas när en entitet, kallad den refererade entiteten, visas vid namn i ett bestående SQL-uttryck från en annan entitet, kallad referensentiteten. Till exempel, om en användardefinierad typ (UDT) anges som den refererade entiteten, returnerar denna funktion varje användardefinierad entitet som refererar till den typen med namn i sin definition. Funktionen returnerar inte entiteter i andra databaser som kan referera till den angivna enheten. Denna funktion måste utföras i huvuddatabasens kontext för att returnera en servernivå-DDL-trigger som referensentitet.
Du kan använda denna dynamiska hanteringsfunktion för att rapportera om följande typer av enheter i den aktuella databasen som refererar till den angivna enheten:
Schemabundna eller icke-schemabundna enheter
DDL-triggers på databasnivå
Servernivå-DDL-triggers
Gäller för: SQL Server (SQL Server 2008 (10.0.x och senare), SQL Database.
Transact-SQL syntaxkonventioner
Syntax
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 Är namnet på den refererade enheten.
schema_name krävs utom när den refererade kursen är PARTITION_FUNCTION.
schema_name.referenced_entity_nameär nvarchar(517).
<referenced_class> ::= { OBJECT | TYPE | XML_SCHEMA_COLLECTION | PARTITION_FUNCTION } Är klassen för den refererade entiteten. Endast en klass kan specificeras per sats.
<referenced_class> är nvarchar(60).
Tabell returnerad
| Kolumnnamn | Datatyp | Description |
|---|---|---|
| referencing_schema_name | sysname | Schema där den refererande enheten hör hemma. Kan inte vara null. NULL för databasnivå- och servernivå-DDL-triggers. |
| referencing_entity_name | sysname | Namnet på den refererande enheten. Får inte vara ogiltig. |
| referencing_id | int | ID för den refererande enheten. Får inte vara ogiltig. |
| referencing_class | tinyint | Klass av den refererande enheten. Får inte vara ogiltig. 1 = Objekt 12 = Databasnivå-DDL-trigger 13 = Servernivå-DDL-trigger |
| referencing_class_desc | nvarchar(60) | Beskrivning av klass av referensentitet. OBJECT DATABASE_DDL_TRIGGER SERVER_DDL_TRIGGER |
| is_caller_dependent | bit | Indikerar att upplösningen av det refererade entitets-ID:t sker vid körning eftersom det beror på anroparens schema. 1 = Den refererande entiteten har potential att referera till entiteten; dock är upplösningen av det refererade entitets-ID:t beroende av anroparen och kan inte bestämmas. Detta sker endast för icke-schemabundna referenser till en lagrad procedur, utökad lagrad prozedur eller användardefinierad funktion som anropas i ett EXECUT-uttalande. 0 = Den refererade enheten är inte beroende av anroparen. |
Exceptions
Returnerar en tom resultatmängd under något av följande villkor:
Ett systemobjekt specificeras.
Den angivna enheten finns inte i den aktuella databasen.
Den angivna enheten refererar inte till några enheter.
En ogiltig parameter passeras.
Returnerar ett fel när den specificerade referensenheten är en numrerad lagrad procedur.
Anmärkningar
Följande tabell listar de typer av enheter för vilka beroendeinformation skapas och underhålls. Beroendeinformation skapas eller underhålls inte för regler, standardvärden, temporära tabeller, tillfälligt lagrade procedurer eller systemobjekt.
| Entitetstyp | Referensentitet | Refererad enhet |
|---|---|---|
| Tabell | Ja* | Yes |
| View | Yes | Yes |
| Transact-SQL lagrad procedur** | Yes | Yes |
| CLR-lagrad procedur | Nej | Yes |
| Transact-SQL användardefinierad funktion | Yes | Yes |
| CLR:s användardefinierade funktion | Nej | Yes |
| CLR-trigger (DML och DDL) | Nej | Nej |
| Transact-SQL DML-utlösare | Yes | Nej |
| Transact-SQL databasnivå-DDL-trigger | Yes | Nej |
| Transact-SQL servernivå-DDL-trigger | Yes | Nej |
| Utökade lagrade procedurer | Nej | Yes |
| Queue | Nej | Yes |
| Synonym | Nej | Yes |
| Type (alias och CLR användardefinierad typ) | Nej | Yes |
| XML-schemasamling | Nej | Yes |
| Partitionsfunktion | Nej | Yes |
* En tabell spåras som en referensentitet endast när den refererar till en Transact-SQL modul, användardefinierad typ eller XML-schemasamling i definitionen av en beräknad kolumn, CHECK-begränsning eller DEFAULT-begränsning.
** Numrerade lagrade procedurer med ett heltalsvärde större än 1 spåras inte som vare sig referens- eller referensentitet.
Permissions
SQL Server 2008 (10.0.x) - SQL Server 2012 (11.x)
Kräver CONTROL-behörighet på det refererade objektet. När den refererade entiteten är en partitionsfunktion krävs KONTROLL-behörighet för databasen.
Kräver SELECT-behörighet på sys.dm_sql_referencing_entities. Som standardinställning beviljas SELECT-behörighet till allmänheten.
SQL Server 2014 (12.x) och senare
Kräver inga behörigheter på det refererade objektet. Delvisa resultat kan returneras om användaren har VIEW DEFINITION på endast några av referensentiteterna.
Kräver VIEW DEFINITION på objektet när den refererande entiteten är ett objekt.
Kräver VIEW DEFINITION på databasen när den refererande enheten är en databasnivå-DDL-trigger.
Kräver VIEW ANY DEFINITION på servern när den refererande enheten är en servernivå DDL-trigger.
Examples
A. Returnera entiteterna som hänvisar till en given entitet
Följande exempel returnerar de entiteter i den aktuella databasen som refererar till den angivna tabellen.
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. Returnerar entiteterna som refererar till en given typ
Följande exempel returnerar entiteterna som refererar till aliastypen dbo.Flag. Resultatmängden visar att två lagrade procedurer använder denna typ. Typen dbo.Flag används också vid definitionen av flera kolumner i tabellen HumanResources.Employee ; men eftersom typen inte finns i definitionen av en beräknad kolumn, CHECK-begränsning eller DEFAULT-begränsning i tabellen, returneras inga rader för tabellen HumanResources.Employee .
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
Här är resultatet.
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)`
Se även
sys.dm_sql_referenced_entities (Transact-SQL)
sys.sql_expression_dependencies (Transact-SQL)