sql >> Databasteknik >  >> RDS >> Sqlserver

Söka efter databasobjekt och tabelldata i SQL Server

Om du är en SQL Server-databasadministratör eller utvecklare behöver du ofta söka efter specifika databasobjekt vars namn du bara delvis kan komma ihåg. Den manuella metoden för att utföra dessa sökoperationer är tidskrävande, särskilt när databasen har ett stort antal objekt.

Ett annat scenario är ett där du vill söka efter specifik data i alla databastabeller. I det här fallet måste du köra en SELECT-sats flera gånger baserat på antalet databastabeller eller vyer du vill söka i, eller skriva en komplex markör för att loopa och söka i alla databastabeller, vilket kräver avancerade SQL Server-utvecklingsfärdigheter.

I den här artikeln kommer vi att titta på olika sätt att söka efter ett specifikt databasobjekt eller data i SQL Server, gradvis gå från inbyggda metoder och dyka in i ett 3-partsverktyg som gör det enkelt att få den efterfrågade databasen objekt eller data.

Fråga sys.objects

Sys.objects är en dynamisk hanteringsvy för SQL Server-system som kan användas för att lista alla objekt som är definierade under en specifik databas.

Till exempel, för att lista alla databasobjekt som har "Emp" i sina namn, kan vi fråga sys.objects-systemets DMV baserat på objektnamnet, som i T-SQL-frågan nedan:

VÄLJ NAMN SOM ObjName ,schema_name(schema_id) AS SchemaName ,typ AS ObjType ,type_desc AS ObjTypeDesc ,create_date ,modify_date FRÅN sys.objectsWHERE NAME LIKE '%Emp%'ORDER BY ObjName ASC, ObjType> 

Och resultatet som returneras från min testdatabas, med fullständig information om det fullständiga objektnamnet, typen, skapande och modifieringsdata, kommer att vara enligt nedan:

SQL Server Management Studio Object Explorer

En annan metod som kan användas för att söka efter ett specifikt databasobjekt i din databas är SQL Server Management Studio Object Explorer.

När du använder SQL Server Management Studio för att ansluta till och administrera din SQL Server-instans kan du öppna Object Explorer genom att välja alternativet Objektutforskare Detaljer under Visa-menyn, eller helt enkelt trycka på F7-tangenten , som visas nedan:

När Objektutforskaren öppnas kan du söka efter ett specifikt databasobjekt på följande sätt:

  • bläddra till databasen du vill söka igenom
  • skriv namnet (helt eller delvis) på databasobjektet i Sök textruta
  • tryck på Retur för att starta sökprocessen

Listan över alla databasobjekt som uppfyller dina sökkriterier kommer att visas enligt nedan:

För att gå till platsen för ett specifikt databasobjekt, från det öppnade sökresultatet för Objektutforskaren, högerklicka på det databasobjektet och välj Synkronisera alternativ, som visas nedan:

Pekaren leder dig automatiskt till objektets plats som visas nedan:

SQL Server Management Studio-filtrering

SQL Server Management Studio ger oss ett annat sätt att söka efter och lokalisera ett specifikt databasobjekt med hjälp av filter.

Databasobjekt kan filtreras enligt följande:

  • bläddra till databasen där objekten finns
  • expandera databasnoden
  • peka på mappen där objektet finns (som tabeller, vyer, lagrade procedurer eller funktioner)
  • högerklicka på den noden och välj Filterinställningar under Filter alternativlista, som visas nedan:

Från den öppnade Filterinställning fönster, välj de sökkriterier som du ska använda för att identifiera databasobjektet (t.ex. namn, schema eller ägaren till det objektet, operatorn som kommer att användas i sökfiltret). Du kan till exempel söka efter ett databasobjekt med namnet lika med, innehåller eller inte innehåller det angivna värdet. När du har angett filterkriterierna klickar du på OK för att använda filtret:

När filtret har tillämpats kommer du att se att endast de databasobjekt som uppfyller filtersökkriterierna kommer att listas under objekttypsnoden, som visas nedan:

För att ta bort filtret och visa alla databasobjekt igen, högerklicka på den relevanta databasobjektlistnoden, som är Tabell nod i vårt exempel och välj Ta bort filter från listan med filteralternativ, så kommer alla databasobjekt att visas igen, som visas nedan:

Datasökning i SQL Server Management Studio

Förutom att skriva SELECT-frågor för att söka efter ett specifikt värde, ger SQL Server Management Studio oss ett annat sätt att söka efter kolumnvärden och modifiera dem direkt på databasobjektnivå baserat på de angivna kriterierna.

För att söka efter ett datavärde från en specifik tabell, bläddra till den tabellen i SQL Server Management Studio, högerklicka på den tabellen och välj Redigera topp 200 rader alternativ, som visas nedan:

I det öppnade fönstret klickar du på tabellikonen nedan för att visa filtreringsfönstret:

I det öppnade filtreringsfönstret, ange villkoret och kolumnen du är intresserad av. I exemplet nedan kommer vi att lista alla anställdas rader med ID större än 10:

När du har ställt in filtret högerklickar du var som helst i ett tomt område och väljer Execute SQL möjlighet att tillämpa villkoren:

Raderna som uppfyller de tillämpade villkoren kommer att visas i resultatrutnätet, och du kan utföra uppdateringar av denna data, som visas nedan:

Sök efter ett SQL Server 3-partsverktyg

Fram till denna punkt diskuterade vi olika metoder för att söka efter databasobjekt och tabelldata. Men dessa metoder ger oss specifika typer av information som inte kan filtreras, sorteras eller hanteras enkelt. Det är därför vi måste titta på 3-partsverktyg som finns på marknaden och förhoppningsvis hitta ett som tillhandahåller alla diskuterade sökfunktioner i samma fönster och låter oss hantera resultaten utifrån våra krav.

Ett av de mest användbara och användarvänliga 3-partsverktygen som enkelt och snabbt kan användas för att söka efter alla typer av databasobjekt eller data är dbForge Search for SQL Server by Devart.

dbForge Search for SQL Server är ett gratis SQL Server Management Studio-tillägg som ger oss möjligheten att lokalisera alla SQL Server-databasobjekt eller data, utan att behöva titta igenom SSMS Object Explorer eller komma ihåg platsen för det objektet. Det låter oss söka i alla databasobjekt eller ställa in våra egna sökfilter för att snabbt hitta databasobjekt eller data och enkelt navigera i dem i SSMS Object Explorer. Med dbForge Search for SQL Server kan du också sortera och filtrera sökresultaten efter önskemål.

Det kostnadsfria verktyget dbForge Search for SQL Server kan laddas ner från Devarts nedladdningssida och enkelt installeras på din maskin med hjälp av en enkel installationsguide, som visas nedan:

Installationsguiden ber dig först ange installationsmappen för dbForge Search for SQL Server:

Sedan låter den dig välja SQL Server Management Studio-versionen som är installerad på din maskin:

Och slutligen kan du välja vilken startoptimering som ska tillämpas på verktyget för att förbättra dess prestanda, som visas nedan:

När installationen av dbForge Search for SQL Server startar kan du övervaka installationsprocessen via installationens förloppsindikator:

Efter att ha slutfört installationsprocessen för dbForge Search for SQL Server-tillägget kommer installationsguiden att meddela oss att tillägget har installerats framgångsrikt för den valda SSMS-versionen och redo att användas:

För att börja använda sökverktyget dbForge, öppna SQL Server Management Studio. Du hittar sökverktygets unika ikon, som visas nedan:

Klicka på dbForge-sökning ikon och ett nytt fönster kommer att öppnas, vilket ger dig möjlighet att söka både efter databasobjekt och tabelldata:

Databasobjektsökning

Anta att vi behöver söka efter alla databasobjekt som innehåller "emp" i deras namn under AdevtureWorks2016-databasen.

Klicka på DDL knappen till vänster för att välja Sök efter databasobjekt alternativet, skriv sökfrasen i sökrutan och välj sedan SQL Server-instansen som innehåller databasen och namnet på databasen/databaserna att utföra sökningen på:

Därefter väljer du typen av databasobjekt du vill söka efter i Objekttyper rullgardinslista:

Och slutligen, ange vilken typ av sökning du ska utföra. Du kan söka efter databasobjekt med exakt angivna skiftlägen, objekten som matchar hela det angivna ordet, eller använda jokertecken (till exempel '%') för att returnera objekt med namn som innehåller den angivna frasen:

Efter att ha klickat på sökknappen nära den angivna texten kommer du att se resultaten i två sektioner. Det första avsnittet innehåller fullständig information om alla databasobjekt som uppfyller de angivna sökkriterierna. I det andra avsnittet hittar du T-SQL-satsen som används för att skapa det valda databasobjektet:

Förutom möjligheten att sortera det returnerade resultatet baserat på valfri kolumn, ger dbForge Search-verktyget oss möjligheten att gruppera sökresultatet efter objektets typ. För att gruppera sökresultatet efter varje databasobjekt, klicka på ikonen Gruppering, som du kan se nedan:

Sökresultatet kommer att grupperas efter databasobjekttyper, vilket gör det enklare att lokalisera och hantera de objekt du är intresserad av:

Efter att ha valt det nödvändiga databasobjektet från sökresultaten kan du enkelt hitta det objektet i SSMS Object Explorer genom att högerklicka på det och välja Hitta i Objektutforskaren alternativ:

Datasökning

Sökverktyget dbForge låter oss också söka efter ett specifikt text- eller nummervärde i databastabeller eller vyer. För att ändra sökläget från databasobjektsökning till datasökning, klicka på Data sökknappen till vänster i fönstret, välj SQL Server-instansen där din databas är värd och databasen/databaserna, tabellerna och vyerna att söka efter data i. Efter att ha specificerat datasökkriterierna och filtren, skriv datavärdet som du kommer att söka efter och klicka på sökikonen nära den angivna texten, som visas nedan:

Återigen kommer resultatet att visas i två sektioner. Det första avsnittet visar fullständig information om platsen för det returnerade värdet och det andra avsnittet visar hela raden som innehåller det värdet:

Från de tidigare exemplen kan vi tydligt se hur enkelt och snabbt dbForge Search-verktyget är att söka och lokalisera alla databasobjekt eller data, med hänsyn till att sökprocessen kommer att gå snabbare när vi tillhandahåller korrekta och snäva sökkriterier. Prova det själv!


  1. Hur man undviker inlåsning av PostgreSQL Cloud-leverantörer

  2. Hur kommer jag åt Oracle från Python?

  3. arbeta med json i oracle

  4. psycopg2 läcker minne efter stor fråga