sql >> Database >  >> RDS >> Sqlserver

Gebruik sys.sql_dependencies niet in SQL Server (het is verouderd)

SQL Server heeft een systeemcatalogusweergave genaamd sys.sql_dependencies die informatie retourneert over afhankelijkheden tussen entiteiten.

Microsoft heeft deze weergave 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 sys.sql_dependencies in nieuw ontwikkelingswerk, en u moet toepassingen die het momenteel gebruiken aanpassen om sys.sql_expression_dependencies te gebruiken in plaats daarvan.

De sys.sql_expression_dependencies systeemcatalogusweergave retourneert alle afhankelijkheden van een door de gebruiker gedefinieerde entiteit in de huidige database. Dit omvat afhankelijkheden tussen native gecompileerde, scalaire door de gebruiker gedefinieerde functies en andere SQL Server-modules.

U kunt deze weergave gebruiken om:

  • Entiteiten retourneren die afhankelijk zijn van een bepaalde entiteit
  • Entiteiten retourneren waarvan een bepaalde entiteit afhankelijk is

U kunt het bijvoorbeeld gebruiken om alle objecten te retourneren die naar een specifieke tabel verwijzen. Je zou het ook kunnen gebruiken om alle objecten te retourneren waarnaar een specifieke opgeslagen procedure verwijst in zijn code.

Voor meer informatie en voorbeelden, zie mijn bericht:Vind afhankelijkheden in SQL Server:sql_expression_dependencies.

Weet u niet zeker of u momenteel sys.sql_dependencies gebruikt?

Als u niet zeker weet of uw systeem gebruikmaakt van sys.sql_dependencies , 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

  • sys.sql_dependencies
  • sys.sql_expression_dependencies
  • Verouderde Database Engine-functies in SQL Server 2017
  • Verouderde Database Engine-functies in SQL Server 2016 (zelfde als de lijst van 2017)

  1. SQL*Plus voert geen SQL-scripts uit die SQL Developer wel doet

  2. Bepaal de rijgrootte voor de tabel

  3. Kopieer een tabel (inclusief indexen) in postgres

  4. Nieuwe kolomwijzigingen met alleen metagegevens in SQL Server 2016