Ако сте администратор или разработчик на база данни на SQL Server, трябва често да търсите конкретни обекти на база данни, чиито имена можете да запомните само частично. Ръчният подход за извършване на тези операции за търсене отнема време, особено когато базата данни има голям брой обекти.
Друг сценарий е този, при който искате да търсите конкретни данни във всички таблици на базата данни. В този случай трябва да изпълните оператор SELECT няколко пъти въз основа на броя на таблиците на базата данни или изгледите, в които искате да търсите, или да напишете сложен курсор за цикъл и търсене във всички таблици на база данни, което изисква напреднали умения за разработка на SQL Server.
В тази статия ще разгледаме различни начини за търсене на конкретен обект на база данни или данни в SQL Server, преминавайки постепенно от вградени методи и се гмуркайки в инструмент от 3 страни, който прави лесно получаването на исканата база данни обект или данни.
Запитване на sys.objects
Sys.objects е динамичен изглед за управление на системата на SQL Server, който може да се използва за изброяване на всички обекти, които са дефинирани в конкретна база данни.
Например, за да изброим всички обекти на базата данни, които имат „Emp“ в имената си, можем да потърсим DMV на системата sys.objects въз основа на името на обекта, както в T-SQL заявката по-долу:
ИЗБЕРЕТЕ ИМЕ КАТО ObjName ,schema_name(schema_id) AS SchemaName ,type AS ObjType ,type_desc КАТО ObjTypeDesc ,create_date ,modify_date ОТ sys.objectsWHERE ИМЕ КАТО '%Emp%Nameype ASC Obj>И резултатът, върнат от моята база данни за тестване, с пълна информация за пълното име на обекта, типа, данните за създаване и модификация, ще бъде както следва:
SQL Server Management Studio Object Explorer
Друг метод, който може да се използва за търсене на конкретен обект на база данни във вашата база данни, е SQL Server Management Studio Object Explorer.
Когато използвате SQL Server Management Studio за свързване и администриране на вашия екземпляр на SQL Server, можете да отворите Object Explorer като изберете опцията Подробности за Object Explorer под менюто View или просто натиснете клавиша F7 , както е показано по-долу:
Когато се отвори Object Explorer, можете да търсите конкретен обект на база данни по следния начин:
- прегледайте базата данни, в която искате да търсите
- напишете името (пълно или частично) на обекта на базата данни в Търсене текстово поле
- натиснете Enter за да започнете процеса на търсене
Списъкът с всички обекти на базата данни, които отговарят на вашите критерии за търсене, ще се покаже, както е показано по-долу:
За да отидете до местоположението на конкретен обект на база данни, от отворения резултат от търсенето на Object Explorer, щракнете с десния бутон върху този обект на базата данни и изберете Синхронизиране опция, както е показано по-долу:
Показалецът автоматично ще ви отведе до местоположението на този обект, както е показано по-долу:
Филтриране на SQL Server Management Studio
SQL Server Management Studio ни предоставя друг начин за търсене и намиране на конкретен обект на база данни с помощта на филтри.
Обектите в базата данни могат да бъдат филтрирани по следния начин:
- прегледайте базата данни, където се намират обектите
- разширете възела на базата данни
- посочете папката, в която се намира обектът (като таблици, изгледи, съхранени процедури или функции)
- щракнете с десния бутон върху този възел и изберете Настройки на филтъра под Филтър списък с опции, както е показано по-долу:
От отворената Настройки на филтъра прозорец, изберете критериите за търсене, които ще използвате, за да идентифицирате обекта на базата данни (например име, схема или собственик на този обект, операторът, който ще се използва във филтъра за търсене). Например, можете да търсите обект на база данни с име, равно на, съдържащ или не съдържащ предоставената стойност. След като посочите критериите за филтриране, щракнете върху OK за да приложите филтъра:
След като филтърът бъде приложен, ще видите, че само обектите в базата данни, които отговарят на критериите за търсене на филтър, ще бъдат изброени под възела тип обекти, както е показано по-долу:
За да премахнете филтъра и да видите отново всички обекти на базата данни, щракнете с десния бутон върху съответния възел на списъка с обекти на базата данни, който е Таблици възел в нашия пример и изберете Премахване на филтър опция от списъка с опции за филтриране и всички обекти на базата данни ще бъдат показани отново, както е показано по-долу:
Търсене на данни в SQL Server Management Studio
В допълнение към писането на SELECT заявки за търсене на конкретна стойност, SQL Server Management Studio ни предоставя друг начин да търсим стойности на колони и да ги модифицираме директно на ниво обект на база данни въз основа на посочените критерии.
За да търсите стойност на данни от конкретна таблица, прегледайте тази таблица в SQL Server Management Studio, щракнете с десния бутон върху тази таблица и изберете Редактиране на най-добрите 200 реда опция, както е показано по-долу:
От отворения прозорец щракнете върху иконата Таблица, показана по-долу, за да видите прозореца за филтриране:
В отворения прозорец за филтриране посочете условието и колоната(ите), които ви интересуват. В примера по-долу ще изброим всички редове за служители с идентификатор, по-голям от 10:
След като настроите филтъра, щракнете с десния бутон навсякъде в празна област и изберете Изпълнение на SQL опция за прилагане на условията:
Редовете, които отговарят на приложените условия, ще бъдат показани в мрежата с резултати и можете да извършвате актуализации на тези данни, както е показано по-долу:
Търсете инструмент от три страни на SQL Server
До този момент обсъждахме различни методи за търсене на обекти на база данни и данни от таблици. Но тези методи ни предоставят специфични типове информация, която не може да бъде филтрирана, сортирана или управлявана лесно. Ето защо трябва да потърсим инструменти на 3 страни, налични на пазара, и да се надяваме да намерим такъв, който предоставя всички обсъждани функции за търсене в същия прозорец и ни позволява да управляваме резултатите въз основа на нашите изисквания.
Един от най-полезните и лесни за потребителя инструменти на 3 страни, които могат лесно и бързо да се използват за търсене на всякакъв тип обекти или данни от база данни, е dbForge Search for SQL Server от Devart.
dbForge Search for SQL Server е безплатна добавка на SQL Server Management Studio, която ни предоставя възможността да намираме всеки обект или данни на база данни на SQL Server, без да е необходимо да разглеждаме SSMS Object Explorer или да си припомняме местоположението на този обект. Позволява ни да търсим във всички обекти на базата данни или да настроим собствени филтри за търсене, за да намерим бързо обекти или данни в базата данни и лесно да ги навигираме в SSMS Object Explorer. С dbForge Search за SQL Server можете също да сортирате и филтрирате резултатите от търсенето по желание.
Безплатният инструмент dbForge Search for SQL Server може да бъде изтеглен от страницата за изтегляне на Devart и лесно се инсталира на вашето устройство с помощта на лесен съветник за инсталиране, както е показано по-долу:
Помощникът за инсталиране първо ще ви помоли да посочите инсталационната папка за dbForge Search for SQL Server:
След това ще ви позволи да изберете версията на SQL Server Management Studio, инсталирана на вашата машина:
И накрая, можете да изберете каква оптимизация при стартиране ще бъде приложена към инструмента, за да подобрите неговата производителност, както е показано по-долу:
Когато стартира инсталацията на dbForge Search for SQL Server, можете да наблюдавате процеса на инсталиране чрез лентата за напредък на инсталацията:
След завършване на процеса на инсталиране на добавка dbForge Search for SQL Server, съветникът за инсталиране ще ни уведоми, че добавката е инсталирана успешно за избраната версия на SSMS и е готова за използване:
За да започнете да използвате инструмента dbForge Search, отворете SQL Server Management Studio. Ще намерите уникалната икона на инструмента за търсене, както е показано по-долу:
Щракнете върху dbForge Search иконата и ще се отвори нов прозорец, който ви предоставя възможност да търсите както обекти на база данни, така и данни от таблица:
Търсене на обекти в базата данни
Да приемем, че трябва да търсим всички обекти на база данни, съдържащи „emp“ в имената си в базата данни AdevtureWorks2016.
Щракнете върху DDL бутон вляво, за да изберете Търсене на обекти в базата данни опция, напишете фразата за търсене в полето за търсене, след което изберете екземпляра на SQL Server, който съдържа тази база данни и името на базата данни, за да извършите търсенето:
След това изберете типа на обекта(ите) на базата данни, който искате да търсите в Типове обекти падащ списък:
И накрая, посочете типа търсене, което ще извършите. Можете да търсите обекти в базата данни с точния предвиден регистър на думите, обектите, които съответстват на цялата предоставена дума, или да използвате заместващи знаци (например „%“), за да върнете обекти с имена, съдържащи предоставената фраза:
След като кликнете върху бутона за търсене близо до предоставения текст, ще видите резултатите, показани в две секции. Първият раздел съдържа пълни подробности за всички обекти на базата данни, които отговарят на предоставените критерии за търсене. Във втория раздел ще намерите израза T-SQL, който се използва за създаване на избрания обект на база данни:
В допълнение към възможността да сортираме върнатия резултат въз основа на която и да е колона, инструментът за търсене dbForge ни предоставя възможността да групираме резултата от търсенето по типа на обекта. За да групирате резултата от търсенето по всеки обект на база данни, щракнете върху иконата Групиране, както можете да видите по-долу:
Резултатът от търсенето ще бъде групиран по типове обекти на базата данни, което улеснява намирането и управлението на обектите, които ви интересуват:
След като изберете необходимия обект на база данни от резултатите от търсенето, можете лесно да намерите този обект в SSMS Object Explorer, като щракнете с десния бутон върху него и изберете Намери в Object Explorer опция:
Търсене на данни
Инструментът dbForge Search също ни позволява да търсим конкретен текст или числова стойност в таблици или изгледи на база данни. За да промените режима на търсене от търсене на обекти в база данни към търсене на данни, щракнете върху Данни бутон за търсене в лявата част на прозореца, изберете екземпляра на SQL Server, където се хоства вашата база данни, и базата(ите), таблиците и изгледите, в които да търсите данните. След като посочите критериите за търсене на данни и филтрите, напишете стойността на данните които ще търсите и кликнете върху иконата за търсене близо до предоставения текст, както е показано по-долу:
Отново резултатът ще бъде показан в две секции. Първият раздел показва пълна информация за местоположението на върнатата стойност, а вторият раздел показва пълния ред, който съдържа тази стойност:
От предишните примери можем ясно да видим колко лесен и бърз е инструментът dbForge Search при търсене и локализиране на всеки обект или данни от база данни, като се има предвид, че процесът на търсене ще бъде по-бърз, когато предоставим точни и тесни критерии за търсене. Изпробвайте го сами!