SQL Server har en systemkatalogvy som heter sys.sql_dependencies
som returnerar information om beroenden mellan enheter.
Microsoft har markerat denna vy som utfasad, vilket betyder att den är i underhållsläge och kan tas bort i en framtida version av SQL Server. Du bör undvika att använda sys.sql_dependencies
i nytt utvecklingsarbete, och du bör modifiera applikationer som för närvarande använder det för att använda sys.sql_expression_dependencies
istället.
sys.sql_expression_dependencies
systemkatalogvyn returnerar alla beroenden av en användardefinierad enhet i den aktuella databasen. Detta inkluderar beroenden mellan inbyggt kompilerade, skalära användardefinierade funktioner och andra SQL Server-moduler.
Du kan använda den här vyn för att:
- Returnera enheter som är beroende av en given enhet
- Returnera enheter som en given enhet är beroende av
Du kan till exempel använda den för att returnera alla objekt som refererar till en specifik tabell. Du kan också använda den för att returnera alla objekt som en specifik lagrad procedur refererar till i sin kod.
För mer information och exempel, se mitt inlägg:Hitta beroenden i SQL Server:sql_expression_dependencies.
Osäker på om du för närvarande använder sys.sql_dependencies?
Om du inte är säker på om ditt system använder sys.sql_dependencies
, kan du alltid använda sys.dm_os_performance_counters
att få reda på. Du kan använda den här dynamiska hanteringsvyn för att returnera en räkning av hur många gånger varje utfasad funktion har påträffats sedan SQL Server startades. Kolla in Snabbaste sättet att hitta föråldrade funktioner som fortfarande används i en SQL Server-instans för mer information och exempel.
En mer utarbetad metod är att använda utökade händelser för att skapa en loggfil som innehåller extra information om varje användning av den föråldrade funktionen. Du kan till exempel spela in information som SQL-satsen som innehåller den föråldrade funktionen, användaren som körde den, tiden den kördes, databasen den fanns i och mer. Se Använda utökade händelser för att logga föråldrade funktioner som används i en SQL Server-instans för steg-för-steg-instruktioner om hur du gör det.
Microsoft Documentation Reference
- sys.sql_dependencies
- sys.sql_expression_dependencies
- Utfasade databasmotorfunktioner i SQL Server 2017
- Utfasade databasmotorfunktioner i SQL Server 2016 (samma som 2017 års lista)