SQL: Sprawdzanie czy tabela jest wykorzystywana w widokach, funkcjach lub procedurach

25-Lis-2018

Od czasu do czasu administrator lub programista musi nieco posprzątać w swojej bazie danych. Sprzątanie może polegać na usunięciu tabel, które nie są już potrzebne, w których kiedyś ktoś planował przechowywać jakieś dane, ale się rozmyślił i zostają osierocone, nieużywane tabele. Wykonanie polecenia DROP jest proste, szybkie i przyjemne, ale przed usuwaniem warto sprawdzić, czy tabela nie jest wykorzystywana w widokach, procedurach i funkcjach.

Jeżeli inne obiekty były tworzone z wykorzystaniem opcji with SCHEMA_BINDING, to zadanie jest proste, bo sama próba usunięcia obiektu, do którego odwołują się inne obiekty skończy się błędem. Gorzej jeśli ta opcja nie była wykorzystywana, ale i tak masz na to rozwiązanie.

Oto przykład jaki rozważymy:

żeby sprawdzić, czy istnieją obiekty odwołujące się do MyTab wykonaj zapytanie:

Oto wynik:

taki test można też wykonać z GUI w SSMS. Kliknij na tabeli prawym przyciskiem myszy i z menu wybierz „View dependecies”:

 

Dodaj komentarz:

Autor: Rafał Kraik