sql >> Database >  >> RDS >> Sqlserver

Gebruik sp_depends niet in SQL Server (het is verouderd)

SQL Server heeft een door het systeem opgeslagen procedure genaamd sp_depends die informatie retourneert over afhankelijkheden tussen objecten binnen de huidige database.

Microsoft heeft deze opgeslagen procedure gemarkeerd als verouderd, wat betekent dat deze zich in de onderhoudsmodus bevindt en in een toekomstige versie van SQL Server kan worden verwijderd. Vermijd het gebruik van sp_depends in nieuw ontwikkelingswerk, en u moet toepassingen die het momenteel gebruiken aanpassen om sys.dm_sql_referencing_entities() te gebruiken of sys.dm_sql_referenced_entities() in plaats daarvan (afhankelijk van of u verwijzingen nodig heeft entiteiten, of verwezen entiteiten terug te sturen.

De sys.dm_sql_referencing_entities() systeem dynamisch beheer functie retourneert een lijst met entiteiten die afhankelijk zijn van de gegeven entiteit. Meer specifiek, het retourneert alle entiteiten in de huidige database die op naam verwijzen naar een andere door de gebruiker gedefinieerde entiteit.

De sys.dm_sql_referenced_entities() systeem dynamisch beheer, aan de andere kant, retourneert een lijst met alle door de gebruiker gedefinieerde entiteiten waarvan een specifieke entiteit afhankelijk is. Meer specifiek geeft het alle door de gebruiker gedefinieerde entiteiten terug waarnaar met naam wordt verwezen in de definitie van een bepaalde entiteit. U kunt deze functie gebruiken voor cross-database en cross-server entiteiten.

Weet u niet zeker of u momenteel sp_depends gebruikt?

Als u niet zeker weet of uw systeem gebruikmaakt van sp_depends , kunt u altijd sys.dm_os_performance_counters . gebruiken Er achter komen. U kunt deze weergave voor dynamisch systeembeheer gebruiken om een ​​telling te retourneren van het aantal keren dat elke verouderde functie is aangetroffen sinds SQL Server is gestart. Bekijk Snelste manier om verouderde functies te vinden die nog steeds worden gebruikt in een SQL Server-instantie voor meer informatie en voorbeelden.

Een meer uitgebreide methode is om uitgebreide gebeurtenissen te gebruiken om een ​​logbestand te maken dat extra informatie bevat over elk gebruik van de verouderde functie. U kunt bijvoorbeeld informatie vastleggen, zoals de SQL-instructie die de verouderde functie bevat, de gebruiker die deze heeft uitgevoerd, de tijd waarop deze is uitgevoerd, de database waarin deze zich bevond en meer. Zie Uitgebreide gebeurtenissen gebruiken om verouderde functies vast te leggen die worden gebruikt in een SQL Server-instantie voor stapsgewijze instructies over hoe u dat kunt doen.

Microsoft-documentatiereferentie

  • sp_depends
  • sys.dm_sql_referencing_entities
  • sys.dm_sql_referenced_entities
  • Verouderde Database Engine-functies in SQL Server 2017
  • Verouderde Database Engine-functies in SQL Server 2016 (hetzelfde als de lijst van 2017)

  1. Lijst met gegevenstypen in SQL Server 2017

  2. Tips en trucs voor het navigeren door de PostgreSQL-gemeenschap

  3. Een berekende kolom maken die gegevens uit een andere tabel in SQL Server gebruikt

  4. Mislukt bouwwiel voor psycopg2 - MacOSX met virtualenv en pip