MS SQL Die suche nach einem Wort

Erstellt am 5. Juli 2012 von Cyborg2k @gamorz

Ich stand gerade vor einem Problem, ich wusste das Wort aber weder in welcher Tabelle oder Spalte meiner MS SQL Datenbank dies zu finden wäre.
Folgendes SQL Statement führte mich zum Ziel.

Als ersten Step generieren wir eine reihe an SQL Select Statements die uns die Suche eingrenzen lassen.

1
2
3
4
5
6
7
SELECT 'select distinct ''gefunden in Tabelle '
+ TABLE_NAME + ' Spalte '
+ column_name + ' '' from ' + TABLE_NAME
+ ' where ' + column_name + ' like ''%gesuchteswort%'' union all '
FROM information_schemaCOLUMNS
WHERE data_type IN ('varchar','text','nchar')
ORDER BY 1

Den Platzhalter ersetzen wir durch unser Wort und die “data_type” müssen entsprechend angepasst werden.
In meinem Fall reichten die angegeben 3 Datentypen und man bekommt als Ergebnis alle Tabellen/Spalten aufgelistet die dem Datentyp entsprechen fix fertig mit Suchwort als Select Anweisung.

Das ergebnis dieser Abfrage kopieren wir uns nun in ein neues Abfrage Fenster und löschen in der letzten Zeile das “union all”.
Unter umständen kann es sein dass ihr die Menge an Abfragen reduzieren müsst, bei mir funktionierten bis zu 1000 gleichzeitig.

Das Ergebnis dieser Abfrage liefert uns nun wiederum in welcher Tabelle und welcher Spalte sich unser Suchwort befindet.
Ab hier kann dann mit normalen SQL select Statements weiter gearbeitet werden.

Viel Spaß damit!