# MSSQL - Einen String suchen und den Tabellennamen ausgeben



## loddarmattheus (2. März 2017)

Hallo,

ich habe eine kurze Frage, die ihr mir sicherlich ganz leicht (hoffentlich) beantworten könnt, weil ich zu blö* dafür bin:

Wir haben eine MSSQL-Datenbank mit etwa 300 Tabellen und gefühlt 5000 Spalten.
Ich habe einen festen String (z.B. Heinemann), der irgendwo in einer der Tabellen auffindbar ist.

Wir haben es mit select 'Heinemann' versucht, was uns auch ein Ergebnis brachte, allerdings verriet uns das Ergebnis nicht, in welcher der vielen Tabellen der Wert zu finden war?

Gibt es dafür eine Lösung?

Vielen Dank. Loddar


----------



## Yaslaw (2. März 2017)

Eine Datenbank ist kein Text* oder Exceldokument, dass man so schnell per Textsuche durchsucht.
select 'Heinemann' gibt direine Zeile mit dem Text Heinemann' zurück. Das ist kein 'habe was gefunden' sondern ein 'Ich zeige einen festen Text an'

Grundsätzlich habe ich das Gefühl, dass die ein Strukturelles Problem in deiner DB hast. 300 Tabellen..... 

OK. Mit MSSQL kenne ich mich nicht aus. Dafür mit 5 anderen SQL-Datenbanken und es geht hier um DB-Grundsätze.

Das "Einfachste"
Erstelle eine gigantische Union-Abfrage,in der du jede Tabelle und jedes Feld durchsucht, das den Namen beinhalten kann.

```
select 'meine_tabelle_1' as table_name
from meine_tabelle_1 as t
where t.mein_feld_1 = 'Heinemann' or t.mein_feld_2 = 'Heinemann'
union select 'meine_tabelle_2' as table_name
from meine_tabelle_2 as t
where t.mein_feld_1 = 'Heinemann' or t.mein_feld_2 = 'Heinemann' or t.mein_feld_3 = 'Heinemann'
....
union select 'meine_tabelle_300' as table_name
from meine_tabelle_300 as t
where t.mein_feld_1 = 'Heinemann'
```
Viel Spass

Oder du schreibst eine Prozedure, welche dir die Arbeit abnimmt
http://stackoverflow.com/questions/436351/how-do-i-find-a-value-anywhere-in-a-sql-server-database


----------



## sheel (2. März 2017)

Hi

vllt. auch sowas...
http://stackoverflow.com/questions/9185871/how-to-search-sql-server-database-for-string


----------



## loddarmattheus (2. März 2017)

Ok, danke erstmal für die Infos.
Nunja, die Anzahl der Tabellen kann ich mir bei einem fertigen Warenwirtschaftssystem leider nicht aussuchen.

Das andere erscheint mir dann halt doch etwas zu aufwändig.


----------

