SQL Server má systémovou uloženou proceduru s názvem sp_depends
který vrací informace o závislostech mezi objekty v aktuální databázi.
Společnost Microsoft označila tuto uloženou proceduru jako zastaralou, což znamená, že je v režimu údržby a v budoucí verzi SQL Server může být odebrána. Měli byste se vyhnout použití sp_depends
v nové vývojové práci a měli byste upravit aplikace, které jej aktuálně používají, aby používaly buď sys.dm_sql_referencing_entities()
nebo sys.dm_sql_referenced_entities()
místo toho (v závislosti na tom, zda potřebujete odkaz entity nebo odkazované entity, které mají být vráceny.
sys.dm_sql_referencing_entities()
funkce dynamického řízení systému vrací seznam entit, které jsou závislé na dané entitě. Přesněji řečeno, vrací všechny entity v aktuální databázi, které odkazují na jinou uživatelem definovanou entitu jménem.
sys.dm_sql_referenced_entities()
funkce systémové dynamické správy na druhé straně vrací seznam všech uživatelsky definovaných entit, na kterých závisí konkrétní entita. Přesněji řečeno, vrací všechny uživatelem definované entity, na které se odkazuje jménem v definici dané entity. Tuto funkci můžete použít pro entity napříč databázemi a mezi servery.
Nejste si jisti, zda aktuálně používáte sp_depends?
Pokud si nejste jisti, zda váš systém používá sp_depends
, můžete vždy použít sys.dm_os_performance_counters
zjistit. Toto zobrazení dynamické správy systému můžete použít k vrácení počtu, kolikrát byla každá zastaralá funkce nalezena od spuštění serveru SQL Server. Podívejte se na Nejrychlejší způsob, jak najít zastaralé funkce, které se stále používají v instanci SQL Server, kde najdete další informace a příklady.
Propracovanější metodou je použití rozšířených událostí k vytvoření souboru protokolu, který obsahuje další informace o každém použití zastaralé funkce. Můžete například zaznamenat informace, jako je příkaz SQL, který obsahuje zastaralou funkci, uživatele, který ji spustil, čas spuštění, databázi, ve které se nacházel a další. Pokyny krok za krokem, jak to provést, najdete v části Použití rozšířených událostí k protokolování zastaralých funkcí používaných v instanci serveru SQL.
Příručka k dokumentaci Microsoft
- sp_depends
- sys.dm_sql_referencing_entities
- sys.dm_sql_referenced_entities
- Zastaralé funkce databázového stroje v SQL Server 2017
- Zastaralé funkce databázového stroje v SQL Server 2016 (stejné jako seznam 2017)