Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Nie używaj sp_depends w SQL Server (jest przestarzałe)

SQL Server ma systemową procedurę składowaną o nazwie sp_depends który zwraca informacje o zależnościach między obiektami w bieżącej bazie danych.

Firma Microsoft oznaczyła tę procedurę składowaną jako przestarzałą, co oznacza, że ​​jest w trybie konserwacji i może zostać usunięta w przyszłej wersji programu SQL Server. Powinieneś unikać używania sp_depends w nowych pracach programistycznych i powinieneś zmodyfikować aplikacje, które obecnie z niego korzystają, aby używały albo sys.dm_sql_referencing_entities() lub sys.dm_sql_referenced_entities() zamiast tego (w zależności od tego, czy potrzebujesz odniesienia podmioty lub odwołanie podmioty do zwrotu.

sys.dm_sql_referencing_entities() funkcja dynamicznego zarządzania systemem zwraca listę podmiotów zależnych od danego podmiotu. Dokładniej, zwraca wszystkie jednostki w bieżącej bazie danych, które odwołują się do innej jednostki zdefiniowanej przez użytkownika według nazwy.

sys.dm_sql_referenced_entities() Z drugiej strony funkcja dynamicznego zarządzania systemem zwraca listę wszystkich encji zdefiniowanych przez użytkownika, od których zależy konkretna encja. Dokładniej, zwraca wszystkie encje zdefiniowane przez użytkownika, do których odwołuje się nazwa, w definicji danej encji. Możesz użyć tej funkcji dla jednostek międzybazowych i międzyserwerowych.

Nie jesteś pewien, czy obecnie używasz sp_depends?

Jeśli nie masz pewności, czy Twój system używa sp_depends , zawsze możesz użyć sys.dm_os_performance_counters aby się dowiedzieć. Możesz użyć tego widoku dynamicznego zarządzania systemem, aby zwrócić liczbę napotkanych każdej przestarzałej funkcji od czasu uruchomienia programu SQL Server. Sprawdź najszybszy sposób na znalezienie przestarzałych funkcji, które są nadal używane w instancji SQL Server, aby uzyskać więcej informacji i przykładów.

Bardziej skomplikowaną metodą jest użycie rozszerzonych zdarzeń do utworzenia pliku dziennika zawierającego dodatkowe informacje o każdym użyciu przestarzałej funkcji. Na przykład można rejestrować informacje, takie jak instrukcja SQL zawierająca przestarzałą funkcję, użytkownika, który ją uruchomił, czas jej uruchomienia, bazę danych, w której się znajdowała, i inne. Zobacz Korzystanie z rozszerzonych zdarzeń do rejestrowania przestarzałych funkcji używanych w instancji SQL Server, aby uzyskać szczegółowe instrukcje, jak to zrobić.

Dokumentacja Microsoft

  • sp_depends
  • sys.dm_sql_referencing_entities
  • sys.dm_sql_referenced_entities
  • Przestarzałe funkcje aparatu bazy danych w SQL Server 2017
  • Przestarzałe funkcje aparatu bazy danych w SQL Server 2016 (takie same jak lista 2017)

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Plusy i minusy używania SqlCommand Prepare w C#?

  2. Jak utworzyć klucz obcy w SQL Server (przykłady T-SQL)

  3. Jak znaleźć aktualny poziom transakcji?

  4. Know-How przywracania usuniętych rekordów w SQL Server

  5. Dzielenie wartości rozdzielonych przecinkami w kolumnach na wiele wierszy w Sql Server