sql >> Database teknologi >  >> RDS >> Sqlserver

Søgning efter databaseobjekter og tabeldata i SQL Server

Hvis du er SQL Server-databaseadministrator eller -udvikler, skal du ofte søge efter specifikke databaseobjekter, hvis navne du kun delvist kan huske. Den manuelle tilgang til at udføre disse søgeoperationer er tidskrævende, især når databasen har et stort antal objekter.

Et andet scenarie er et, hvor du vil søge efter specifikke data i alle databasetabeller. I dette tilfælde skal du køre en SELECT-sætning flere gange baseret på antallet af databasetabeller eller visninger, du vil søge i, eller skrive en kompleks markør for at sløjfe og søge i alle databasetabeller, hvilket kræver avancerede SQL Server-udviklingsfærdigheder.

I denne artikel vil vi se på forskellige måder at søge efter et specifikt databaseobjekt eller data i SQL Server, gradvist gå fra indbyggede metoder og dykke ned i et 3-parts værktøj, der gør det nemt at få den ønskede database. objekt eller data.

Forespørger på sys.objects

Sys.objects er en dynamisk administrationsvisning i SQL Server-systemet, der kan bruges til at liste alle objekter, der er defineret under en specifik database.

For for eksempel at liste alle databaseobjekter, der har "Emp" i deres navne, kan vi forespørge sys.objects-systemets DMV baseret på objektnavnet, som i T-SQL-forespørgslen nedenfor:

VÆLG NAVN SOM ObjName ,schema_name(schema_id) AS SchemaName ,type AS ObjType ,type_desc AS ObjTypeDesc ,create_date ,modify_date FRA sys.objectsWHERE NAME LIKE '%Emp%'ORDER BY ObjName ASC, ObjType> 

Og resultatet returneret fra min testdatabase med fuldstændig information om det fulde objektnavn, type, oprettelse og ændringsdata vil være som nedenfor:

SQL Server Management Studio Object Explorer

En anden metode, der kan bruges til at søge efter et specifikt databaseobjekt i din database, er SQL Server Management Studio Object Explorer.

Når du bruger SQL Server Management Studio til at oprette forbindelse til og administrere din SQL Server-instans, kan du åbne Object Explorer ved at vælge Objekt Explorer Detaljer under menuen Vis eller blot trykke på F7-tasten , som vist nedenfor:

Når Object Explorer er åbnet, kan du søge efter et specifikt databaseobjekt på følgende måde:

  • gå til den database, du vil søge i
  • skriv navnet (helt eller delvist) på databaseobjektet i Søg tekstboks
  • tryk på Enter for at starte søgeprocessen

Listen over alle databaseobjekter, der opfylder dine søgekriterier, vises som vist nedenfor:

For at gå til placeringen af ​​et bestemt databaseobjekt skal du højreklikke på det databaseobjekt fra det åbnede Objekt Explorer-søgeresultat og vælge Synkroniser mulighed, som vist nedenfor:

Markøren vil automatisk føre dig til objektets placering som vist nedenfor:

SQL Server Management Studio-filtrering

SQL Server Management Studio giver os en anden måde at søge efter og lokalisere et specifikt databaseobjekt ved hjælp af filtre.

Databaseobjekter kan filtreres som følger:

  • gå til databasen, hvor objekterne er placeret
  • udvid databasenoden
  • peg på den mappe, hvori objektet er placeret (såsom tabeller, visninger, lagrede procedurer eller funktioner)
  • højreklik på den node, og vælg Filterindstillinger under Filter valgliste, som vist nedenfor:

Fra den åbnede Filterindstilling vindue, skal du vælge de søgekriterier, du vil bruge til at identificere databaseobjektet (f.eks. navn, skema eller ejeren af ​​det pågældende objekt, operatoren, der skal bruges i søgefilteret). For eksempel kan du søge efter et databaseobjekt med navnet lig med, indeholdende eller ikke indeholde den angivne værdi. Når du har angivet filterkriterierne, skal du klikke på OK for at anvende filteret:

Når filteret er anvendt, vil du se, at kun de databaseobjekter, der opfylder filtersøgekriterierne, vil blive opført under objekttypeknuden, som vist nedenfor:

For at fjerne filteret og se alle databaseobjekterne igen skal du højreklikke på den relevante databaseobjektlistenode, som er Tables node i vores eksempel, og vælg Fjern filter indstilling fra listen Filterindstillinger, og alle databaseobjekter vil blive vist igen, som vist nedenfor:

Datasøgning i SQL Server Management Studio

Ud over at skrive SELECT-forespørgsler for at søge efter en specifik værdi, giver SQL Server Management Studio os en anden måde at søge efter kolonneværdier og ændre dem direkte på databaseobjektniveau baseret på de angivne kriterier.

For at søge efter en dataværdi fra en specifik tabel skal du gå til den tabel i SQL Server Management Studio, højreklikke på den tabel og vælge Rediger Top 200 Rows mulighed, som vist nedenfor:

Fra det åbnede vindue skal du klikke på tabelikonet vist nedenfor for at se filtreringsvinduet:

I det åbnede filtreringsvindue skal du angive tilstanden og de(n) kolonne(r), du er interesseret i. I eksemplet nedenfor vil vi liste alle medarbejderrækker med ID større end 10:

Efter opsætning af filteret skal du højreklikke hvor som helst i et tomt område og vælge Execute SQL mulighed for at anvende betingelserne:

De rækker, der opfylder de anvendte betingelser, vil blive vist i resultatgitteret, og du kan udføre opdateringer på disse data, som vist nedenfor:

Søg efter et SQL Server 3-partsværktøj

Indtil dette tidspunkt diskuterede vi forskellige metoder til at søge efter databaseobjekter og tabeldata. Men disse metoder giver os specifikke typer information, som ikke let kan filtreres, sorteres eller administreres. Det er grunden til, at vi er nødt til at se på 3-partsværktøjer, der er tilgængelige på markedet, og forhåbentlig finde et, der giver alle de diskuterede søgefunktioner i samme vindue og giver os mulighed for at administrere resultaterne baseret på vores krav.

Et af de mest nyttige og brugervenlige 3-partsværktøjer, der nemt og hurtigt kan bruges til at søge efter enhver type databaseobjekter eller data, er dbForge Search for SQL Server by Devart.

dbForge Search for SQL Server er et gratis SQL Server Management Studio-tilføjelsesprogram, der giver os mulighed for at lokalisere ethvert SQL Server-databaseobjekt eller -data uden at skulle kigge gennem SSMS Object Explorer eller genkalde placeringen af ​​dette objekt. Det giver os mulighed for at søge i alle databaseobjekter eller opsætte vores egne søgefiltre for hurtigt at finde databaseobjekter eller data og nemt navigere i dem i SSMS Object Explorer. Med dbForge Search for SQL Server kan du også sortere og filtrere søgeresultaterne efter ønske.

Det gratis værktøj dbForge Search for SQL Server kan downloades fra Devart-downloadsiden og nemt installeret på din maskine ved hjælp af en simpel installationsguide, som vist nedenfor:

Installationsguiden vil først bede dig om at angive installationsmappen for dbForge Search for SQL Server:

Så vil det lade dig vælge SQL Server Management Studio-versionen installeret på din maskine:

Og endelig kan du vælge, hvilken opstartsoptimering der skal anvendes på værktøjet for at forbedre dets ydeevne, som vist nedenfor:

Når installationen af ​​dbForge Search for SQL Server starter, kan du overvåge installationsprocessen via installationens statuslinje:

Efter at have fuldført installationsprocessen for dbForge Search for SQL Server-tilføjelse, vil installationsguiden give os besked om, at tilføjelsesprogrammet er installeret korrekt for den valgte SSMS-version og klar til brug:

For at begynde at bruge dbForge Search-værktøjet skal du åbne SQL Server Management Studio. Du finder søgeværktøjets unikke ikon, som vist nedenfor:

Klik på dbForge-søgning ikon og et nyt vindue åbnes, som giver dig mulighed for at søge både efter databaseobjekter og tabeldata:

Søgning af databaseobjekter

Antag, at vi skal søge efter alle databaseobjekter, der indeholder "emp" i deres navne under AdevtureWorks2016-databasen.

Klik på DDL knappen til venstre for at vælge Søg efter databaseobjekter valgmulighed, skriv søgesætningen i søgefeltet, og vælg derefter SQL Server-forekomsten, der indeholder databasen og navnet på databasen/databaserne for at udføre søgningen på:

Vælg derefter typen af ​​databaseobjekt(er), du vil søge efter i Objekttyper rulleliste:

Og endelig skal du angive, hvilken type søgning du vil udføre. Du kan søge efter databaseobjekter med den nøjagtige angivne store og små bogstaver, de objekter, der matcher hele det angivne ord, eller bruge jokertegn (f.eks. '%') til at returnere objekter med navne, der indeholder den angivne sætning:

Efter at have klikket på søgeknappen i nærheden af ​​den angivne tekst, vil du se resultaterne vist i to sektioner. Det første afsnit indeholder alle detaljer om alle databaseobjekter, der opfylder de angivne søgekriterier. I det andet afsnit finder du T-SQL-sætningen, der bruges til at oprette det valgte databaseobjekt:

Ud over muligheden for at sortere det returnerede resultat baseret på en hvilken som helst kolonne, giver dbForge Search-værktøjet os mulighed for at gruppere søgeresultatet efter objektets type. For at gruppere søgeresultatet efter hvert databaseobjekt skal du klikke på ikonet Gruppering, som du kan se nedenfor:

Søgeresultatet vil blive grupperet efter databaseobjekttyper, hvilket gør det nemmere at lokalisere og administrere de objekter, du er interesseret i:

Efter at have valgt det nødvendige databaseobjekt fra søgeresultaterne, kan du nemt finde det pågældende objekt i SSMS Object Explorer ved at højreklikke på det og vælge Find i Objekt Explorer mulighed:

Datasøgning

dbForge Search-værktøjet giver os også mulighed for at søge efter en specifik tekst- eller talværdi i databasetabeller eller visninger. For at ændre søgetilstanden fra databaseobjektsøgning til datasøgning skal du klikke på Data søg-knap i venstre side af vinduet, vælg den SQL Server-instans, hvor din database er hostet, og den eller de databaser, tabeller og visninger, du vil søge i dataene i. Efter at have specificeret datasøgekriterierne og -filtrene, skriv dataværdien som du vil søge efter og klikke på søgeikonet nær den angivne tekst, som vist nedenfor:

Igen vil resultatet blive vist i to sektioner. Den første sektion viser fuld information om placeringen af ​​den returnerede værdi, og den anden sektion viser den komplette række, der indeholder denne værdi:

Fra de foregående eksempler kan vi tydeligt se, hvor nemt og hurtigt dbForge Search-værktøjet er til at søge og lokalisere ethvert databaseobjekt eller data, idet vi tager i betragtning, at søgeprocessen vil være hurtigere, når vi angiver nøjagtige og snævre søgekriterier. Prøv det selv!


  1. Har Oracle en ækvivalent til SQL Servers tabelvariabler?

  2. ETL vs ELT:Vi vurderer, du dømmer

  3. Tip til XML-ydelse

  4. Hvordan RandomBlob() virker i SQLite