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

Verwenden Sie sp_depends nicht in SQL Server (es ist veraltet)

SQL Server verfügt über eine gespeicherte Systemprozedur namens sp_depends die Informationen über Abhängigkeiten zwischen Objekten innerhalb der aktuellen Datenbank zurückgibt.

Microsoft hat diese gespeicherte Prozedur 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 sp_depends vermeiden in neuer Entwicklungsarbeit, und Sie sollten Anwendungen, die es derzeit verwenden, ändern, um entweder sys.dm_sql_referencing_entities() zu verwenden oder sys.dm_sql_referenced_entities() stattdessen (je nachdem, ob Sie eine Referenzierung benötigen Entitäten oder referenziert zurückzugebende Entitäten.

Die sys.dm_sql_referencing_entities() Die dynamische Verwaltungsfunktion des Systems gibt eine Liste von Entitäten zurück, die von der angegebenen Entität abhängen. Genauer gesagt, es gibt alle Entitäten in der aktuellen Datenbank zurück, die eine andere benutzerdefinierte Entität namentlich referenzieren.

Die sys.dm_sql_referenced_entities() Die systemdynamische Verwaltungsfunktion gibt andererseits eine Liste aller benutzerdefinierten Entitäten zurück, von denen eine bestimmte Entität abhängt. Genauer gesagt gibt es alle benutzerdefinierten Entitäten zurück, auf die in der Definition einer bestimmten Entität namentlich verwiesen wird. Sie können diese Funktion für datenbank- und serverübergreifende Entitäten verwenden.

Nicht sicher, ob Sie derzeit sp_depends verwenden?

Wenn Sie sich nicht sicher sind, ob Ihr System sp_depends 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

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