Jeśli jesteś administratorem lub deweloperem bazy danych SQL Server, musisz często wyszukiwać określone obiekty bazy danych, których nazwy pamiętasz tylko częściowo. Ręczne podejście do wykonywania tych operacji wyszukiwania jest czasochłonne, zwłaszcza gdy baza danych zawiera dużą liczbę obiektów.
Inny scenariusz to taki, w którym chcesz wyszukać określone dane we wszystkich tabelach bazy danych. W takim przypadku musisz wielokrotnie uruchomić instrukcję SELECT w oparciu o liczbę tabel lub widoków bazy danych, w których chcesz przeszukać, albo napisać złożony kursor, aby zapętlić i przeszukać wszystkie tabele bazy danych, co wymaga zaawansowanych umiejętności programowania SQL Server.
W tym artykule przyjrzymy się różnym sposobom wyszukiwania określonego obiektu bazy danych lub danych w programie SQL Server, stopniowo przechodząc od metod wbudowanych do narzędzia innej firmy, które sprawia, że uzyskanie żądanej bazy danych to bułka z masłem obiekt lub dane.
Odpytywanie obiektów sys.objects
Obiekty sys to widok dynamicznego zarządzania systemem SQL Server, który może być używany do wyświetlania listy wszystkich obiektów zdefiniowanych w określonej bazie danych.
Na przykład, aby wyświetlić listę wszystkich obiektów bazy danych, które mają „Emp” w swoich nazwach, możemy wysłać zapytanie do systemu DMV sys.objects na podstawie nazwy obiektu, tak jak w zapytaniu T-SQL poniżej:
SELECT NAME AS ObjName ,schema_name(schema_id) AS SchemaName ,type AS ObjType ,type_desc AS ObjTypeDesc ,create_date ,modify_date FROM sys.objects WHERE NAME LIKE '%Emp%' ORDER BY ObjName ASC, ObjType ASCTyp ASC
A wynik zwrócony z mojej testowej bazy danych, z pełną informacją o pełnej nazwie obiektu, typie, danych tworzenia i modyfikacji, będzie następujący:
Eksplorator obiektów SQL Server Management Studio
Inną metodą, której można użyć do wyszukiwania określonego obiektu bazy danych w bazie danych, jest Eksplorator obiektów SQL Server Management Studio.
Używając SQL Server Management Studio do łączenia się z instancją SQL Server i zarządzania nią, możesz otworzyć Object Explorer wybierając opcję Szczegóły eksploratora obiektów w menu Widok lub po prostu naciskając klawisz F7 , jak pokazano poniżej:
Po otwarciu Eksploratora obiektów możesz wyszukać określony obiekt bazy danych w następujący sposób:
- przejdź do bazy danych, którą chcesz przeszukać
- wpisz nazwę (pełną lub częściową) obiektu bazy danych w Szukaj pole tekstowe
- naciśnij Enter aby rozpocząć proces wyszukiwania
Lista wszystkich obiektów bazy danych spełniających kryteria wyszukiwania zostanie wyświetlona, jak pokazano poniżej:
Aby przejść do lokalizacji konkretnego obiektu bazy danych, z otwartego wyniku wyszukiwania Object Explorer, kliknij prawym przyciskiem myszy ten obiekt bazy danych i wybierz Synchronizuj opcja, jak pokazano poniżej:
Wskaźnik automatycznie poprowadzi Cię do lokalizacji tego obiektu, jak pokazano poniżej:
Filtrowanie SQL Server Management Studio
SQL Server Management Studio zapewnia nam inny sposób wyszukiwania i lokalizowania określonego obiektu bazy danych za pomocą filtrów.
Obiekty bazy danych można filtrować w następujący sposób:
- przejdź do bazy danych, w której znajdują się obiekty
- rozwiń węzeł bazy danych
- wskaż folder, w którym znajduje się obiekt (taki jak tabele, widoki, procedury składowane lub funkcje)
- kliknij prawym przyciskiem myszy ten węzeł i wybierz Ustawienia filtra pod Filtrem lista opcji, jak pokazano poniżej:
Z otwartego Ustawienia filtra w oknie wybierz kryteria wyszukiwania, które posłużą Ci do identyfikacji obiektu bazy danych (np. nazwa, schemat lub właściciel tego obiektu, operator, który zostanie użyty w filtrze wyszukiwania). Na przykład możesz wyszukać obiekt bazy danych o nazwie równej, zawierający lub nie zawierający podaną wartość. Po określeniu kryteriów filtrowania kliknij OK aby zastosować filtr:
Po zastosowaniu filtra zobaczysz, że tylko te obiekty bazy danych, które spełniają kryteria wyszukiwania filtra, zostaną wymienione w węźle typu obiektów, jak pokazano poniżej:
Aby usunąć filtr i ponownie wyświetlić wszystkie obiekty bazy danych, kliknij prawym przyciskiem myszy odpowiedni węzeł listy obiektów bazy danych, którym jest Tabele w naszym przykładzie i wybierz Usuń filtr z listy Opcje filtra, a wszystkie obiekty bazy danych zostaną ponownie wyświetlone, jak pokazano poniżej:
Wyszukiwanie danych w SQL Server Management Studio
Oprócz pisania zapytań SELECT w celu wyszukania określonej wartości, SQL Server Management Studio zapewnia nam inny sposób wyszukiwania wartości kolumn i modyfikowania ich bezpośrednio na poziomie obiektu bazy danych w oparciu o określone kryteria.
Aby wyszukać wartość danych z określonej tabeli, przejdź do tej tabeli w SQL Server Management Studio, kliknij tę tabelę prawym przyciskiem myszy i wybierz opcję Edytuj 200 pierwszych wierszy opcja, jak pokazano poniżej:
W otwartym oknie kliknij ikonę Tabela pokazaną poniżej, aby wyświetlić okno filtrowania:
W otwartym oknie filtrowania określ warunek i kolumny, które Cię interesują. W poniższym przykładzie wymienimy wszystkie wiersze pracowników z identyfikatorem większym niż 10:
Po skonfigurowaniu filtra kliknij prawym przyciskiem myszy w dowolnym pustym obszarze i wybierz Wykonaj SQL możliwość zastosowania warunków:
Wiersze, które spełniają zastosowane warunki, zostaną wyświetlone w siatce wyników i możesz wykonać aktualizacje tych danych, jak pokazano poniżej:
Wyszukaj narzędzie SQL Server innej firmy
Do tego momentu omówiliśmy różne metody wyszukiwania obiektów bazy danych i danych tabelowych. Ale te metody zapewniają nam określone rodzaje informacji, których nie można łatwo filtrować, sortować ani zarządzać. Dlatego musimy szukać narzędzi innych firm dostępnych na rynku i, miejmy nadzieję, znaleźć takie, które zapewnia wszystkie omawiane funkcje wyszukiwania w tym samym oknie i pozwala nam zarządzać wynikami w oparciu o nasze wymagania.
Jednym z najbardziej przydatnych i przyjaznych dla użytkownika narzędzi innych firm, które można łatwo i szybko wykorzystać do wyszukiwania dowolnego typu obiektów lub danych w bazie danych, jest dbForge Search for SQL Server firmy Devart.
dbForge Search for SQL Server to darmowy dodatek do SQL Server Management Studio, który daje nam możliwość zlokalizowania dowolnego obiektu lub danych bazy danych SQL Server, bez konieczności przeglądania Eksploratora obiektów SSMS lub przywoływania lokalizacji tego obiektu. Pozwala nam przeszukiwać wszystkie obiekty bazy danych lub konfigurować własne filtry wyszukiwania, aby szybko lokalizować obiekty lub dane bazy danych i łatwo nawigować po nich w Eksploratorze obiektów SSMS. Dzięki dbForge Search for SQL Server możesz również sortować i filtrować wyniki wyszukiwania według potrzeb.
Bezpłatne narzędzie dbForge Search for SQL Server można pobrać ze strony pobierania Devart i łatwo zainstalować na swoim komputerze za pomocą prostego kreatora instalacji, jak pokazano poniżej:
Kreator instalacji najpierw poprosi o określenie folderu instalacyjnego dla dbForge Search for SQL Server:
Następnie pozwoli Ci wybrać wersję SQL Server Management Studio zainstalowaną na Twoim komputerze:
I na koniec możesz wybrać, jaka optymalizacja uruchamiania zostanie zastosowana do narzędzia w celu zwiększenia jego wydajności, jak pokazano poniżej:
Kiedy rozpocznie się instalacja dbForge Search for SQL Server, możesz monitorować proces instalacji za pomocą paska postępu instalacji:
Po zakończeniu procesu instalacji dodatku dbForge Search for SQL Server, kreator instalacji poinformuje nas, że dodatek został pomyślnie zainstalowany dla wybranej wersji programu SSMS i jest gotowy do użycia:
Aby rozpocząć korzystanie z narzędzia wyszukiwania dbForge, otwórz SQL Server Management Studio. Znajdziesz unikalną ikonę narzędzia wyszukiwania, jak pokazano poniżej:
Kliknij dbForge Search ikona i otworzy się nowe okno z opcją wyszukiwania zarówno obiektów bazy danych, jak i danych tabeli:
Wyszukiwanie obiektów bazy danych
Załóżmy, że musimy wyszukać wszystkie obiekty bazy danych zawierające „emp” w swoich nazwach w bazie danych AdevtureWorks2016.
Kliknij DDL przycisk po lewej stronie, aby wybrać Wyszukaj obiekty bazy danych wpisz szukaną frazę w polu wyszukiwania, a następnie wybierz instancję SQL Server zawierającą tę bazę danych i nazwę baz danych, na których chcesz przeprowadzić wyszukiwanie:
Następnie wybierz typ obiektów bazy danych, które chcesz wyszukać w Typy obiektów lista rozwijana:
I na koniec określ rodzaj wyszukiwania, które wykonasz. Możesz wyszukiwać obiekty bazy danych z dokładnie podaną wielkością liter, obiekty pasujące do całego podanego słowa lub użyć symboli wieloznacznych (na przykład „%”), aby zwrócić obiekty o nazwach zawierających podaną frazę:
Po kliknięciu przycisku wyszukiwania obok podanego tekstu zobaczysz wyniki wyświetlane w dwóch sekcjach. Pierwsza sekcja zawiera pełne informacje o wszystkich obiektach bazy danych, które spełniają podane kryteria wyszukiwania. W drugiej sekcji znajdziesz instrukcję T-SQL, która służy do tworzenia wybranego obiektu bazy danych:
Oprócz możliwości sortowania zwróconego wyniku na podstawie dowolnej kolumny, narzędzie dbForge Search daje nam możliwość grupowania wyniku wyszukiwania według typu obiektu. Aby pogrupować wyniki wyszukiwania według każdego obiektu bazy danych, kliknij ikonę Grupowanie, jak widać poniżej:
Wyniki wyszukiwania zostaną pogrupowane według typów obiektów bazy danych, co ułatwi zlokalizowanie interesujących Cię obiektów i zarządzanie nimi:
Po wybraniu wymaganego obiektu bazy danych z wyników wyszukiwania, możesz łatwo zlokalizować ten obiekt w Eksploratorze obiektów SSMS, klikając go prawym przyciskiem myszy i wybierając Znajdź w Eksploratorze obiektów opcja:
Wyszukiwanie danych
Narzędzie dbForge Search pozwala nam również na wyszukiwanie określonej wartości tekstowej lub liczbowej w tabelach lub widokach bazy danych. Aby zmienić tryb wyszukiwania z wyszukiwania obiektów bazy danych na wyszukiwanie danych, kliknij przycisk Dane przycisk wyszukiwania po lewej stronie okna, wybierz instancję SQL Server, na której znajduje się Twoja baza danych, oraz bazy danych, tabele i widoki, w których chcesz przeszukać dane. Po określeniu kryteriów wyszukiwania danych i filtrów wpisz wartość danych że będziesz szukać i kliknij ikonę wyszukiwania obok podanego tekstu, jak pokazano poniżej:
Ponownie wynik zostanie wyświetlony w dwóch sekcjach. Pierwsza sekcja wyświetla pełne informacje o lokalizacji zwróconej wartości, a druga sekcja wyświetla pełny wiersz zawierający tę wartość:
Na poprzednich przykładach wyraźnie widać, jak łatwe i szybkie jest narzędzie dbForge Search w wyszukiwaniu i lokalizacji dowolnego obiektu bazy danych lub danych, biorąc pod uwagę, że proces wyszukiwania będzie szybszy, gdy zapewnimy dokładne i wąskie kryteria wyszukiwania. Wypróbuj sam!