Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Verwenden Sie sys.sql_dependencies nicht in SQL Server (es ist veraltet)

SQL Server verfügt über eine Systemkatalogansicht namens sys.sql_dependencies die Informationen über Abhängigkeiten zwischen Entitäten zurückgibt.

Microsoft hat diese Ansicht als veraltet markiert, was bedeutet, dass sie sich im Wartungsmodus befindet und möglicherweise in einer zukünftigen Version von SQL Server entfernt wird. Sie sollten die Verwendung von sys.sql_dependencies vermeiden in neuer Entwicklungsarbeit, und Sie sollten Anwendungen ändern, die es derzeit verwenden, um sys.sql_expression_dependencies zu verwenden stattdessen.

Die sys.sql_expression_dependencies Die Systemkatalogansicht gibt alle Abhängigkeiten von einer benutzerdefinierten Entität in der aktuellen Datenbank zurück. Dazu gehören Abhängigkeiten zwischen nativ kompilierten, benutzerdefinierten Skalarfunktionen und anderen SQL Server-Modulen.

Sie können diese Ansicht für Folgendes verwenden:

  • Entitäten zurückgeben, die von einer bestimmten Entität abhängen
  • Entitäten zurückgeben, von denen eine bestimmte Entität abhängt

Beispielsweise könnten Sie damit alle Objekte zurückgeben, die auf eine bestimmte Tabelle verweisen. Sie können es auch verwenden, um alle Objekte zurückzugeben, auf die eine bestimmte gespeicherte Prozedur in ihrem Code verweist.

Weitere Informationen und Beispiele finden Sie in meinem Beitrag:Abhängigkeiten in SQL Server suchen:sql_expression_dependencies.

Nicht sicher, ob Sie derzeit sys.sql_dependencies verwenden?

Wenn Sie nicht sicher sind, ob Ihr System sys.sql_dependencies verwendet , könnten Sie immer sys.dm_os_performance_counters verwenden herausfinden. Sie können diese dynamische Systemverwaltungsansicht verwenden, um zu zählen, wie oft jedes veraltete Feature seit dem Start von SQL Server aufgetreten ist. Weitere Informationen und Beispiele finden Sie unter Der schnellste Weg, veraltete Funktionen zu finden, die noch in einer SQL Server-Instanz verwendet werden.

Eine aufwändigere Methode besteht darin, erweiterte Ereignisse zu verwenden, um eine Protokolldatei zu erstellen, die zusätzliche Informationen über jede Verwendung der veralteten Funktion enthält. Beispielsweise können Sie Informationen wie die SQL-Anweisung, die die veraltete Funktion enthält, den Benutzer, der sie ausgeführt hat, die Uhrzeit der Ausführung, die Datenbank, in der sie sich befand, und mehr aufzeichnen. Eine Schritt-für-Schritt-Anleitung dazu finden Sie unter Verwenden erweiterter Ereignisse zum Protokollieren veralteter Funktionen, die in einer SQL Server-Instanz verwendet werden.

Microsoft-Dokumentationsreferenz

  • sys.sql_dependencies
  • sys.sql_expression_dependencies
  • Veraltete Datenbankmodulfunktionen in SQL Server 2017
  • Veraltete Datenbank-Engine-Funktionen in SQL Server 2016 (identisch mit der Liste von 2017)