Ich verwende Folgendes, um in meinen gespeicherten Prozeduren nach Zeichenfolgen zu suchen:
use DBname
SELECT Name
FROM sys.procedures
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%xxx%'
Ist es einfach, das oben Gesagte so zu ändern, dass Tabellennamen in einer bestimmten Datenbank "DBname" durchsucht werden?
sql
sql-server
sql-server-2008-r2
warum theq
quelle
quelle
quelle
and is_ms_shipped = 0;
Wenn Sie alle Tabellen in allen Datenbanken serverweit durchsuchen und eine Ausgabe erhalten möchten, können Sie die undokumentierte Prozedur sp_MSforeachdb verwenden:
quelle
Ich gehe davon aus, dass Sie den Datenbanknamen als Parameter übergeben und nicht nur ausführen möchten:
In diesem Fall können Sie dynamisches SQL verwenden, um den Datenbanknamen zur Abfrage hinzuzufügen:
quelle
Sie können auch die Schaltfläche Filter verwenden, um Tabellen mit einer bestimmten Zeichenfolge zu filtern. Sie können dasselbe mit gespeicherten Prozeduren und Ansichten tun.
quelle
Hinzufügen zur Antwort von @ [RichardTheKiwi].
Wenn ich nach einer Liste von Tabellen suche, möchte ich im Allgemeinen aus allen auswählen oder sie löschen. Unten finden Sie ein Skript, das diese Skripte für Sie generiert.
Das generierte Auswahlskript fügt außerdem eine tableName-Spalte hinzu, damit Sie wissen, um welche Tabelle es sich handelt:
quelle
Sie können auch den Befehl show verwenden.
quelle
Ich weiß, dass dies ein alter Thread ist, aber wenn Sie die Suche ohne Berücksichtigung der Groß- und Kleinschreibung bevorzugen:
quelle
Ich möchte für jedes Schema, das Sie haben, eine einfache Lösung veröffentlichen. Wenn Sie MySQL DB verwenden, können Sie einfach den gesamten Tabellennamen aus Ihrem Schema abrufen und die WHERE-LIKE-Bedingung hinzufügen. Sie können dies auch mit der üblichen Befehlszeile wie folgt tun:
Dabei wird
tables_in_<your_shcema_name>
derSHOW TABLES
Befehlsname der Spalte zurückgegeben .quelle