Pokud jste správce nebo vývojář databáze SQL Server, musíte často vyhledávat konkrétní databázové objekty, jejichž názvy si pamatujete jen částečně. Manuální přístup k provádění těchto vyhledávacích operací je časově náročný, zvláště když databáze obsahuje velký počet objektů.
Jiný scénář je ten, ve kterém chcete hledat konkrétní data ve všech databázových tabulkách. V tomto případě musíte spustit příkaz SELECT vícekrát na základě počtu databázových tabulek nebo pohledů, ve kterých chcete prohledávat, nebo napsat složitý kurzor, který bude smyčkovat a vyhledávat ve všech databázových tabulkách, což vyžaduje pokročilé vývojové dovednosti SQL Server.
V tomto článku se podíváme na různé způsoby vyhledávání konkrétního databázového objektu nebo dat na SQL Serveru, postupně přejdeme od vestavěných metod a ponoříme se do nástroje tří stran, díky kterému je získání požadované databáze hračkou. objekt nebo data.
Dotaz na sys.objects
Sys.objects je zobrazení dynamické správy systému SQL Server, které lze použít k zobrazení seznamu všech objektů, které jsou definovány pod konkrétní databází.
Chcete-li například vypsat všechny databázové objekty, které mají ve svých názvech „Emp“, můžeme se dotázat DMV systému sys.objects na základě názvu objektu, jako v dotazu T-SQL níže:
VYBERTE JMÉNO JAKO Název_objektu ,název_schématu(id_schématu) ASNázev_schematu ,typ AS Typ_obj.Type ,typ_desc ASTyp_obj.Desc ,vytvoření_datum ,datum_změny FROM sys.objectsWHERE NAME LIKE '%Emp%'ORDER BY Název_objektu A_ObjType>A výsledek vrácený z mé testovací databáze s úplnými informacemi o úplném názvu objektu, typu, vytvoření a údajích o úpravách bude následující:
Průzkumník objektů SQL Server Management Studio
Další metodou, kterou lze použít k vyhledání konkrétního databázového objektu ve vaší databázi, je SQL Server Management Studio Object Explorer.
Když používáte SQL Server Management Studio pro připojení a správu instance SQL Server, můžete otevřít Průzkumníka objektů výběrem možnosti Podrobnosti průzkumníka objektů v nabídce Zobrazit nebo jednoduše stisknutím klávesy F7 , jak je uvedeno níže:
Když se otevře Průzkumník objektů, můžete vyhledat konkrétní databázový objekt následujícím způsobem:
- přejděte do databáze, ve které chcete prohledávat
- zapište název (úplný nebo částečný) databázového objektu do Hledat textové pole
- stiskněte Enter pro zahájení procesu vyhledávání
Zobrazí se seznam všech databázových objektů, které splňují vaše kritéria vyhledávání, jak je uvedeno níže:
Chcete-li přejít na umístění konkrétního databázového objektu, v otevřeném výsledku hledání Průzkumníka objektů klikněte pravým tlačítkem na tento databázový objekt a vyberte možnost Synchronizovat možnost, jak je uvedeno níže:
Ukazatel vás automaticky navede na umístění tohoto objektu, jak je znázorněno níže:
Filtrování SQL Server Management Studio
SQL Server Management Studio nám poskytuje další způsob, jak vyhledat a najít konkrétní databázový objekt pomocí filtrů.
Databázové objekty lze filtrovat následovně:
- procházet databázi, kde se objekty nacházejí
- rozbalte uzel databáze
- ukažte na složku, ve které se objekt nachází (např. tabulky, pohledy, uložené procedury nebo funkce)
- klikněte pravým tlačítkem myši na tento uzel a zvolte Nastavení filtru pod Filtr seznam možností, jak je uvedeno níže:
Z otevřeného Nastavení filtru vyberte vyhledávací kritéria, která použijete k identifikaci databázového objektu (např. název, schéma nebo vlastníka tohoto objektu, operátor, který bude použit ve vyhledávacím filtru). Můžete například vyhledat databázový objekt s názvem rovným, obsahujícím nebo neobsahujícím zadanou hodnotu. Po zadání kritérií filtru klikněte na OK pro použití filtru:
Po použití filtru uvidíte, že pod uzlem typu objektů budou uvedeny pouze databázové objekty, které splňují kritéria vyhledávání filtru, jak je znázorněno níže:
Chcete-li odstranit filtr a znovu zobrazit všechny databázové objekty, klikněte pravým tlačítkem myši na příslušný uzel seznamu databázových objektů, což je Tabulky v našem příkladu a zvolte Odstranit filtr ze seznamu voleb filtru a znovu se zobrazí všechny databázové objekty, jak je ukázáno níže:
Vyhledávání dat v SQL Server Management Studio
Kromě psaní SELECT dotazů pro hledání konkrétní hodnoty nám SQL Server Management Studio poskytuje další způsob, jak vyhledávat hodnoty sloupců a upravovat je přímo na úrovni databázového objektu na základě zadaných kritérií.
Chcete-li vyhledat datovou hodnotu z konkrétní tabulky, přejděte na tuto tabulku v SQL Server Management Studio, klikněte na ni pravým tlačítkem a vyberte možnost Upravit 200 nejlepších řádků možnost, jak je uvedeno níže:
V otevřeném okně klikněte na níže zobrazenou ikonu Tabulka, aby se zobrazilo okno filtrování:
V otevřeném okně filtrování zadejte podmínku a sloupce, které vás zajímají. V níže uvedeném příkladu vypíšeme všechny řádky zaměstnanců s ID větším než 10:
Po nastavení filtru klikněte pravým tlačítkem kamkoli do prázdné oblasti a vyberte možnost Spustit SQL možnost uplatnit podmínky:
Řádky, které splňují použité podmínky, se zobrazí v mřížce výsledků a můžete provést aktualizaci těchto dat, jak je znázorněno níže:
Vyhledejte nástroj SQL Server 3-party
Do této chvíle jsme diskutovali o různých metodách vyhledávání databázových objektů a tabulkových dat. Tyto metody nám však poskytují specifické typy informací, které nelze snadno filtrovat, třídit ani spravovat. To je důvod, proč se musíme podívat na nástroje tří stran dostupné na trhu a doufejme, že najdeme takový, který poskytuje všechny diskutované funkce vyhledávání ve stejném okně a umožňuje nám spravovat výsledky na základě našich požadavků.
Jedním z nejužitečnějších a uživatelsky nejpřívětivějších nástrojů 3 stran, které lze snadno a rychle použít k vyhledávání jakéhokoli typu databázových objektů nebo dat, je dbForge Search for SQL Server od společnosti Devart.
dbForge Search for SQL Server je bezplatný doplněk SQL Server Management Studio, který nám poskytuje možnost najít jakýkoli databázový objekt nebo data SQL Serveru, aniž bychom museli prohlížet SSMS Object Explorer nebo vyvolávat umístění tohoto objektu. Umožňuje nám vyhledávat ve všech databázových objektech nebo nastavit vlastní vyhledávací filtry, abychom rychle našli databázové objekty nebo data a snadno je procházeli v Průzkumníku objektů SSMS. Pomocí dbForge Search for SQL Server můžete také třídit a filtrovat výsledky vyhledávání podle potřeby.
Bezplatný nástroj dbForge Search for SQL Server lze stáhnout ze stránky pro stahování Devart a snadno se instaluje do vašeho počítače pomocí jednoduchého průvodce instalací, jak je znázorněno níže:
Průvodce instalací vás nejprve požádá o zadání instalační složky pro dbForge Search for SQL Server:
Poté vám umožní vybrat verzi SQL Server Management Studio nainstalovanou na vašem počítači:
A nakonec si můžete vybrat, jaká optimalizace spouštění bude na nástroj použita ke zvýšení jeho výkonu, jak je znázorněno níže:
Když se spustí instalace dbForge Search for SQL Server, můžete sledovat proces instalace pomocí lišty průběhu instalace:
Po dokončení procesu instalace doplňku dbForge Search for SQL Server nás průvodce instalací upozorní, že doplněk je úspěšně nainstalován pro vybranou verzi SSMS a připraven k použití:
Chcete-li začít používat nástroj dbForge Search, otevřete SQL Server Management Studio. Najdete jedinečnou ikonu vyhledávacího nástroje, jak je znázorněno níže:
Klikněte na dbForge Search ikona a otevře se nové okno, které vám poskytne možnost vyhledávat databázové objekty i data tabulky:
Vyhledávání databázových objektů
Předpokládejme, že v databázi AdevtureWorks2016 potřebujeme vyhledat všechny databázové objekty obsahující „emp“ ve svém názvu.
Klikněte na DDL tlačítko nalevo a vyberte Vyhledat databázové objekty zadejte hledanou frázi do vyhledávacího pole a poté vyberte instanci SQL Serveru, která obsahuje tuto databázi, a název databáze (databází), ve kterých chcete hledat:
Poté vyberte typ databázových objektů, které chcete hledat v Typy objektů rozevírací seznam:
A nakonec určete typ vyhledávání, který budete provádět. Můžete vyhledávat databázové objekty s přesným zadaným velkým písmenem, objekty, které odpovídají celému zadanému slovu, nebo použít zástupné znaky (například „%“) k vrácení objektů s názvy obsahujícími zadanou frázi:
Po kliknutí na tlačítko hledání vedle poskytnutého textu uvidíte výsledky zobrazené ve dvou sekcích. První část obsahuje úplné podrobnosti o všech databázových objektech, které splňují zadaná kritéria vyhledávání. Ve druhé části najdete příkaz T-SQL, který se používá k vytvoření vybraného databázového objektu:
Kromě možnosti seřadit vrácený výsledek na základě libovolného sloupce nám nástroj dbForge Search poskytuje možnost seskupit výsledky vyhledávání podle typu objektu. Chcete-li seskupit výsledky hledání podle každého databázového objektu, klikněte na ikonu Seskupení, jak vidíte níže:
Výsledek hledání bude seskupen podle typů databázových objektů, což usnadňuje vyhledání a správu objektů, které vás zajímají:
Po výběru potřebného databázového objektu z výsledků vyhledávání můžete tento objekt snadno najít v Průzkumníku objektů SSMS tak, že na něj kliknete pravým tlačítkem a vyberete možnost Najít v Průzkumníku objektů možnost:
Vyhledávání dat
Nástroj dbForge Search nám také umožňuje vyhledávat konkrétní textovou nebo číselnou hodnotu v databázových tabulkách nebo pohledech. Chcete-li změnit režim vyhledávání z vyhledávání databázových objektů na vyhledávání dat, klikněte na Data tlačítko hledat na levé straně okna, vyberte instanci SQL Server, kde je vaše databáze hostována, a databáze, tabulky a pohledy, ve kterých chcete data prohledávat. Po zadání kritérií pro vyhledávání dat a filtrů zapište hodnotu dat který budete hledat a kliknout na ikonu vyhledávání poblíž poskytnutého textu, jak je znázorněno níže:
Výsledek se opět zobrazí ve dvou částech. První část zobrazuje úplné informace o umístění vrácené hodnoty a druhá část zobrazuje úplný řádek, který tuto hodnotu obsahuje:
Z předchozích příkladů můžeme jasně vidět, jak snadno a rychle je nástroj dbForge Search při vyhledávání a lokalizaci jakéhokoli databázového objektu nebo dat, vezmeme-li v úvahu, že proces vyhledávání bude rychlejší, když poskytneme přesná a úzká vyhledávací kritéria. Vyzkoušejte to sami!