Wenn Sie ein SQL Server-Datenbankadministrator oder -entwickler sind, müssen Sie häufig nach bestimmten Datenbankobjekten suchen, an deren Namen Sie sich nur teilweise erinnern können. Der manuelle Ansatz zur Durchführung dieser Suchoperationen ist zeitaufwändig, insbesondere wenn die Datenbank eine große Anzahl von Objekten enthält.
Ein anderes Szenario ist eines, in dem Sie in allen Datenbanktabellen nach bestimmten Daten suchen möchten. In diesem Fall müssen Sie basierend auf der Anzahl der Datenbanktabellen oder -ansichten, in denen Sie suchen möchten, eine SELECT-Anweisung mehrmals ausführen oder einen komplexen Cursor schreiben, der eine Schleife durchläuft und in allen Datenbanktabellen sucht, was fortgeschrittene SQL Server-Entwicklungsfähigkeiten erfordert.
In diesem Artikel werden wir uns verschiedene Möglichkeiten der Suche nach einem bestimmten Datenbankobjekt oder Daten in SQL Server ansehen, wobei wir schrittweise von integrierten Methoden zu einem Tool eines Drittanbieters übergehen, das es zu einem Kinderspiel macht, die angeforderte Datenbank zu erhalten Objekt oder Daten.
Abfrage von sys.objects
Sys.Objekte ist eine dynamische Verwaltungsansicht des SQL Server-Systems, die verwendet werden kann, um alle Objekte aufzulisten, die unter einer bestimmten Datenbank definiert sind.
Um beispielsweise alle Datenbankobjekte aufzulisten, die „Emp“ in ihrem Namen haben, können wir die sys.objects-System-DMV basierend auf dem Objektnamen abfragen, wie in der T-SQL-Abfrage unten:
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 ASC
Und das von meiner Testdatenbank zurückgegebene Ergebnis mit vollständigen Informationen über den vollständigen Objektnamen, den Typ, die Erstellungs- und Änderungsdaten lautet wie folgt:
SQL Server Management Studio-Objekt-Explorer
Eine andere Methode, mit der Sie nach einem bestimmten Datenbankobjekt in Ihrer Datenbank suchen können, ist der SQL Server Management Studio-Objekt-Explorer.
Wenn Sie SQL Server Management Studio verwenden, um eine Verbindung zu Ihrer SQL Server-Instanz herzustellen und diese zu verwalten, können Sie den Objekt-Explorer öffnen indem Sie im Menü „Ansicht“ die Option „Objekt-Explorer-Details“ auswählen oder einfach die F7-Taste drücken , wie unten gezeigt:
Wenn der Objekt-Explorer geöffnet ist, können Sie auf folgende Weise nach einem bestimmten Datenbankobjekt suchen:
- navigiere zu der Datenbank, die du durchsuchen möchtest
- Schreiben Sie den Namen (vollständig oder teilweise) des Datenbankobjekts in die Suche Textfeld
- drücken Sie Enter um den Suchvorgang zu starten
Die Liste aller Datenbankobjekte, die Ihren Suchkriterien entsprechen, wird wie folgt angezeigt:
Um zum Speicherort eines bestimmten Datenbankobjekts zu gelangen, klicken Sie im geöffneten Suchergebnis des Objekt-Explorers mit der rechten Maustaste auf dieses Datenbankobjekt und wählen Sie Synchronisieren Option, wie unten gezeigt:
Der Zeiger führt Sie automatisch zur Position dieses Objekts, wie unten gezeigt:
SQL Server Management Studio-Filterung
SQL Server Management Studio bietet uns eine weitere Möglichkeit, mithilfe von Filtern nach einem bestimmten Datenbankobjekt zu suchen und es zu finden.
Datenbankobjekte können wie folgt gefiltert werden:
- Durchsuchen Sie die Datenbank, in der sich die Objekte befinden
- erweitern Sie den Datenbankknoten
- auf den Ordner verweisen, in dem sich das Objekt befindet (z. B. Tabellen, Ansichten, gespeicherte Prozeduren oder Funktionen)
- klicken Sie mit der rechten Maustaste auf diesen Knoten und wählen Sie Filtereinstellungen unter Filter Optionsliste, wie unten gezeigt:
Aus der geöffneten Filtereinstellung Wählen Sie im Fenster die Suchkriterien aus, die Sie verwenden werden, um das Datenbankobjekt zu identifizieren (z. B. Name, Schema oder der Besitzer dieses Objekts, der Operator, der im Suchfilter verwendet wird). Sie können beispielsweise nach einem Datenbankobjekt mit dem Namen gleich suchen, das den bereitgestellten Wert enthält oder nicht enthält. Klicken Sie nach Angabe der Filterkriterien auf OK So wenden Sie den Filter an:
Sobald der Filter angewendet wurde, werden Sie sehen, dass nur die Datenbankobjekte, die die Suchkriterien des Filters erfüllen, unter dem Objekttypknoten aufgelistet werden, wie unten gezeigt:
Um den Filter zu entfernen und alle Datenbankobjekte erneut anzuzeigen, klicken Sie mit der rechten Maustaste auf den Listenknoten der relevanten Datenbankobjekte, bei dem es sich um die Tabellen handelt Knoten in unserem Beispiel und wählen Sie Filter entfernen Option aus der Liste Filteroptionen, und alle Datenbankobjekte werden erneut angezeigt, wie unten gezeigt:
Datensuche in SQL Server Management Studio
Zusätzlich zum Schreiben von SELECT-Abfragen zum Suchen nach einem bestimmten Wert bietet uns SQL Server Management Studio eine weitere Möglichkeit, nach Spaltenwerten zu suchen und diese basierend auf den angegebenen Kriterien direkt auf Datenbankobjektebene zu ändern.
Um nach einem Datenwert aus einer bestimmten Tabelle zu suchen, navigieren Sie in SQL Server Management Studio zu dieser Tabelle, klicken Sie mit der rechten Maustaste auf diese Tabelle und wählen Sie Top 200 Zeilen bearbeiten aus Option, wie unten gezeigt:
Klicken Sie im geöffneten Fenster auf das unten gezeigte Tabellensymbol, um das Filterfenster anzuzeigen:
Geben Sie im geöffneten Filterfenster die Bedingung und die Spalte(n) an, die Sie interessieren. Im Beispiel unten listen wir alle Mitarbeiterzeilen mit einer ID größer als 10 auf:
Nachdem Sie den Filter eingerichtet haben, klicken Sie mit der rechten Maustaste irgendwo in einen leeren Bereich und wählen Sie SQL ausführen Option zum Anwenden der Bedingungen:
Die Zeilen, die die angewendeten Bedingungen erfüllen, werden im Ergebnisraster angezeigt, und Sie können diese Daten aktualisieren, wie unten gezeigt:
Suchen Sie nach einem SQL Server-Drittanbieter-Tool
Bis zu diesem Punkt haben wir verschiedene Methoden zum Suchen nach Datenbankobjekten und Tabellendaten besprochen. Aber diese Methoden liefern uns spezifische Arten von Informationen, die nicht einfach gefiltert, sortiert oder verwaltet werden können. Aus diesem Grund müssen wir uns nach auf dem Markt erhältlichen Tools von Drittanbietern umsehen und hoffentlich eines finden, das alle besprochenen Suchfunktionen im selben Fenster bereitstellt und es uns ermöglicht, die Ergebnisse basierend auf unseren Anforderungen zu verwalten.
Eines der nützlichsten und benutzerfreundlichsten Tools von Drittanbietern, mit dem Sie einfach und schnell nach Datenbankobjekten oder Daten aller Art suchen können, ist dbForge Search for SQL Server von Devart.
dbForge Search for SQL Server ist ein kostenloses SQL Server Management Studio-Add-In, das uns die Möglichkeit bietet, beliebige SQL Server-Datenbankobjekte oder -Daten zu finden, ohne den SSMS-Objekt-Explorer durchsuchen oder den Speicherort dieses Objekts abrufen zu müssen. Es ermöglicht uns, in allen Datenbankobjekten zu suchen oder unsere eigenen Suchfilter einzurichten, um Datenbankobjekte oder Daten schnell zu finden und im SSMS-Objekt-Explorer einfach durch sie zu navigieren. Mit dbForge Search for SQL Server können Sie die Suchergebnisse auch beliebig sortieren und filtern.
Das kostenlose Tool dbForge Search for SQL Server kann von der Devart-Downloadseite heruntergeladen werden und einfach auf Ihrem Computer mit einem unkomplizierten Installationsassistenten installiert werden, wie unten gezeigt:
Der Installationsassistent fordert Sie zunächst auf, den Installationsordner für dbForge Search for SQL Server anzugeben:
Dann können Sie die auf Ihrem Computer installierte Version von SQL Server Management Studio auswählen:
Und schließlich können Sie auswählen, welche Startoptimierung auf das Tool angewendet wird, um seine Leistung zu verbessern, wie unten gezeigt:
Wenn die Installation von dbForge Search for SQL Server beginnt, können Sie den Installationsvorgang über den Installationsfortschrittsbalken überwachen:
Nach Abschluss des Installationsvorgangs für das dbForge Search for SQL Server-Add-In benachrichtigt uns der Installationsassistent, dass das Add-In für die ausgewählte SSMS-Version erfolgreich installiert wurde und einsatzbereit ist:
Um mit der Verwendung des dbForge-Suchtools zu beginnen, öffnen Sie SQL Server Management Studio. Sie finden das eindeutige Symbol des Suchwerkzeugs, wie unten gezeigt:
Klicken Sie auf die dbForge-Suche Symbol und ein neues Fenster wird geöffnet, das Ihnen die Möglichkeit bietet, sowohl nach Datenbankobjekten als auch nach Tabellendaten zu suchen:
Suche nach Datenbankobjekten
Angenommen, wir müssen in der AdevtureWorks2016-Datenbank nach allen Datenbankobjekten suchen, die „emp“ in ihrem Namen enthalten.
Klicken Sie auf die DDL Schaltfläche auf der linken Seite, um Nach Datenbankobjekten suchen auszuwählen Option, geben Sie den Suchbegriff in das Suchfeld ein und wählen Sie dann die SQL Server-Instanz aus, die diese Datenbank enthält, sowie den Namen der Datenbank(en), in der/denen gesucht werden soll:
Wählen Sie danach in den Objekttypen den Typ der Datenbankobjekte aus, nach denen Sie suchen möchten Dropdown-Liste:
Geben Sie schließlich die Art der Suche an, die Sie durchführen möchten. Sie können nach Datenbankobjekten mit genau der angegebenen Groß- und Kleinschreibung suchen, nach Objekten, die mit dem gesamten angegebenen Wort übereinstimmen, oder verwenden Sie Platzhalter (z. B. „%“), um Objekte mit Namen zurückzugeben, die den bereitgestellten Ausdruck enthalten:
Nachdem Sie auf die Suchschaltfläche neben dem bereitgestellten Text geklickt haben, werden die Ergebnisse in zwei Abschnitten angezeigt. Der erste Abschnitt enthält vollständige Details zu allen Datenbankobjekten, die die angegebenen Suchkriterien erfüllen. Im zweiten Abschnitt finden Sie die T-SQL-Anweisung, die zum Erstellen des ausgewählten Datenbankobjekts verwendet wird:
Zusätzlich zu der Möglichkeit, das zurückgegebene Ergebnis basierend auf einer beliebigen Spalte zu sortieren, bietet uns das dbForge-Suchtool die Möglichkeit, das Suchergebnis nach dem Objekttyp zu gruppieren. Um das Suchergebnis nach jedem Datenbankobjekt zu gruppieren, klicken Sie auf das Gruppierungssymbol, wie Sie unten sehen können:
Das Suchergebnis wird nach Datenbankobjekttypen gruppiert, was es einfacher macht, die Objekte, an denen Sie interessiert sind, zu finden und zu verwalten:
Nachdem Sie das erforderliche Datenbankobjekt aus den Suchergebnissen ausgewählt haben, können Sie dieses Objekt einfach im SSMS-Objekt-Explorer finden, indem Sie mit der rechten Maustaste darauf klicken und Im Objekt-Explorer suchen auswählen Möglichkeit:
Datensuche
Das dbForge-Suchtool ermöglicht es uns auch, in Datenbanktabellen oder -ansichten nach einem bestimmten Text- oder Zahlenwert zu suchen. Um den Suchmodus von Datenbankobjektsuche auf Datensuche zu ändern, klicken Sie auf Daten Suchschaltfläche auf der linken Seite des Fensters, wählen Sie die SQL Server-Instanz aus, auf der Ihre Datenbank gehostet wird, und die Datenbank(en), Tabellen und Ansichten, in denen die Daten gesucht werden sollen. Nachdem Sie die Datensuchkriterien und Filter angegeben haben, schreiben Sie den Datenwert nach denen Sie suchen und auf das Suchsymbol neben dem bereitgestellten Text klicken, wie unten gezeigt:
Auch hier wird das Ergebnis in zwei Abschnitten angezeigt. Der erste Abschnitt zeigt vollständige Informationen über die Position des zurückgegebenen Werts und der zweite Abschnitt zeigt die vollständige Zeile, die diesen Wert enthält:
Aus den vorherigen Beispielen können wir deutlich erkennen, wie einfach und schnell das dbForge-Suchtool beim Suchen und Auffinden von Datenbankobjekten oder -daten ist, wobei zu berücksichtigen ist, dass der Suchprozess schneller ist, wenn wir genaue und enge Suchkriterien angeben. Probieren Sie es selbst aus!