SQL Server har en systemlagret procedure kaldet sp_depends
der returnerer information om afhængigheder mellem objekter i den aktuelle database.
Microsoft har markeret denne lagrede procedure som forældet, hvilket betyder, at den er i vedligeholdelsestilstand og kan blive fjernet i en fremtidig version af SQL Server. Du bør undgå at bruge sp_depends
i nyt udviklingsarbejde, og du bør ændre applikationer, der i øjeblikket bruger det til at bruge enten sys.dm_sql_referencing_entities()
eller sys.dm_sql_referenced_entities()
i stedet (afhængigt af om du har brug for henvisning enheder eller henviste enheder, der skal returneres.
sys.dm_sql_referencing_entities()
system dynamisk styringsfunktion returnerer en liste over enheder, der afhænger af den givne enhed. Mere specifikt returnerer den alle enheder i den aktuelle database, der refererer til en anden brugerdefineret enhed ved navn.
sys.dm_sql_referenced_entities()
system dynamisk styringsfunktion, på den anden side, returnerer en liste over alle brugerdefinerede entiteter, som en specifik enhed afhænger af. Mere specifikt returnerer det alle brugerdefinerede entiteter, der refereres til ved navn, i definitionen af en given enhed. Du kan bruge denne funktion til enheder på tværs af databaser og på tværs af servere.
Ikke sikker på, om du i øjeblikket bruger sp_depends?
Hvis du ikke er sikker på, om dit system bruger sp_depends
, kan du altid bruge sys.dm_os_performance_counters
at finde ud af. Du kan bruge denne dynamiske systemstyringsvisning til at returnere en optælling af, hvor mange gange hver forældet funktion er blevet stødt på, siden SQL Server blev startet. Se Hurtigste måde at finde forældede funktioner, der stadig bruges i en SQL Server-instans for mere information og eksempler.
En mere kompliceret metode er at bruge udvidede hændelser til at oprette en logfil, der indeholder ekstra information om hver brug af den forældede funktion. Du kan f.eks. registrere oplysninger såsom SQL-sætningen, der indeholder den forældede funktion, brugeren, der kørte den, tidspunktet, den blev kørt, databasen, den var i og mere. Se Brug af udvidede hændelser til at logge forældede funktioner, der bruges i en SQL Server-instans for trinvise instruktioner om, hvordan du gør det.
Microsoft Documentation Reference
- sp_depends
- sys.dm_sql_referencing_entities
- sys.dm_sql_referenced_entities
- Forældede databasemotorfunktioner i SQL Server 2017
- Forældede databasemotorfunktioner i SQL Server 2016 (samme som 2017-listen)