Gibt es eine Möglichkeit, char(64)
in einer Spalte einer Tabelle in einer MS SQL Server-Datenbank nach einem Wert zu suchen (in meinem Fall handelt es sich um eine UID des Typs )?
Ich sitze vor einer riesigen Datenbank, ohne zu wissen, wie die Tabellen miteinander verknüpft werden mussten. Um das herauszufinden, möchte ich alle Tabellen und dort Spalten auflisten, die einen bestimmten Wert in einer beliebigen Zeile enthalten. Ist das möglich?
Eine Möglichkeit könnte darin bestehen, die gesamte Datenbank in eine Textdatei zu kopieren und dann mit einem beliebigen Texteditor nach dem Wert zu suchen. Dies wäre jedoch ein reiner Schmerz, wenn die Datenbank zu groß ist.
Antworten:
http://vyaskn.tripod.com/search_all_columns_in_all_tables.htm
EDIT: Hier ist das eigentliche T-SQL im Falle von Link Rot:
quelle
Alle unten genannten Tools von Drittanbietern sind 100% kostenlos.
Ich habe ApexSQL Search mit gutem Erfolg zum Durchsuchen von Objekten und Daten in Tabellen verwendet. Es kommt mit mehreren anderen Funktionen wie Beziehungsdiagrammen und so ...
Bei großen Datenbanken (40 GB TFS-Datenbank) war ich allerdings etwas langsam…
Abgesehen davon gibt es auch das SSMS Tools Pack , das viele andere Funktionen bietet, die sehr nützlich sind, obwohl diese nicht direkt mit der Suche nach Text zusammenhängen.
quelle
Ich habe den Code erweitert, weil mir nicht das '
record number
' gesagt wurde , und ich muss ihn neu finden.quelle
Quelle: http://fullparam.wordpress.com/2012/09/07/fck-it-i-am-going-to-search-all-tables-all-collumns/
Ich habe eine Lösung von vor einiger Zeit, die ich weiter verbessert habe. Sucht auch in XML-Spalten, wenn Sie dazu aufgefordert werden, oder sucht nach Ganzzahlwerten, wenn nur eine Ganzzahlzeichenfolge angegeben wird.
quelle
Unter https://gallery.technet.microsoft.com/scriptcenter/c0c57332-8624-48c0-b4c3-5b31fe641c58 fand ich eine ziemlich robuste Lösung , auf die ich hinweisen sollte. Es durchsucht Spalten dieser Typen: varchar, char, nvarchar, nchar, text. Es funktioniert hervorragend und unterstützt die spezifische Tabellensuche sowie mehrere Suchbegriffe.
quelle
Auf http://www.reddyss.com/SQLDownloads.aspx ist ein schönes Skript verfügbar
Um es in jeder Datenbank verwenden zu können, können Sie es wie folgt erstellen: http://nickstips.wordpress.com/2010/10/18/sql-making-a-stored-procedure-available-to-all-databases/
Ich bin mir nicht sicher, ob es einen anderen Weg gibt.
Um es zu benutzen, benutze so etwas:
quelle
Nachdem ich die Lösung von @ regeter ausprobiert und festgestellt hatte, dass sie mein Problem nicht löste, als ich nach einem Fremd- / Primärschlüssel suchte, um alle Tabellen / Spalten zu sehen, in denen er vorhanden ist, funktionierte er nicht. Nachdem ich gelesen habe, wie es für einen anderen fehlgeschlagen ist, der versucht hat, eine eindeutige Kennung zu verwenden, habe ich die Änderungen vorgenommen. Hier ist das aktualisierte Ergebnis: (funktioniert sowohl mit int als auch mit guids ... Sie werden sehen, wie Sie es einfach erweitern können)
quelle