eine Number in verschiedenen Tabellen auffinden und als neue Tabelle ausgeben

Foxxy

Neuer Benutzer
Beiträge
3
Guten Tag,

ich wette, dass meine Frage bestimmt schon gestellt wurde und ich zu unerfahren und überfordert bin die Lösung zu finden.
Ich habe natürlich auch gegooglet, jedoch sind die vermutlich guten Hilfestellung noch zu unbekannt für mich um sie zu verstehen. Ich habe erst seit 2 Tagen mit SQL zu tun und habe das letzte mal vor 12 Jahren etwas in html "programmiert"...

Ich entschuldige mich schon einmal und danke herzlichst, dass ihr ein Blick hierauf werft.

-------------------------------------------------------------
Ich müsste folgenden Auftrag lösen:

Eine Prozedur erstellen mit der ich entweder in allen Tabellen eine definierte Number finde (die ID eines Nutzers)
und die Informationen die dieser Number(ID) zugeordnet werden in einer neuen Tabelle aufzulisten.

Als Laienhaftes Beispiel:
UserID sei 1234
UserID 1234 existiert in TabelleA, dort heißt seine Rubrik aber nur ID und die TabelleA enthält dazu Daten/Spalten wie Passwort, Name, Usw.
UserID 1234 existiert in TabelleB, dort heißt die Rubrik U_ID und die TabelleB enthält DatenSpalten wie Gruppenzuordnung, Gebietszuordnung
UserID .... immer so weiter...

Daraus müsste ich eine neue Tabelle erstellen, welche mir die Information gibt
wo existiert UserID 1234 jeweils
welche Spalten/Daten sind ihm in den jeweiligen Tabellen zugeordnet.


Vermutlich steht hier
(Find a string by searching all tables in SQL Server Management Studio 2008)
schon die Antwort, allerdings kann ich sie noch nicht verstehen und erst recht nicht adaptieren
 
Werbung:
Würde es stark helfen, wenn die relevanten Tabellen und auch die Spalten in denen die Number(ID) zu finden ist, bekannt wären?
 
Ja. So arbeitet man auch mit relationalen Datenbanken. Da hat man ein Schema von Tabellen und anderen Objekten, wo bekannt ist, was man wo finden kann.
 
Ok, also die Utopie in meinem Kopf ist unrealistisch, das erklärt auch warum ich die Ziel Tabellen und Spalten kenne.
 
Werbung:
Also erstmal zur Klarstellung zwei Dinge:

1) Welchen SQL Server nutzt du? Du postest bei Oracle und verlinkst auf MSSQL. Das ist schon ein wichtiger Aspekt.

2) Es gibt grundsätzlich drei Ansätze dein Vorhaben zu lösen:
a) Du kennst alle Spalten und Tabellen die du druchsuchst und löst das mit ganz klassischem SQL. Das ist, abhängig von der Anzahl der zu durchsuchenden Spalten, viel Code und eventuell auch nicht sonderlich schnell aber es ist einfach verständlich und universell funktionsfähig.
b) Du nutzt irgendwelche "Zusatz-Features" deines Servers die diese Vorgänge abbilden. Ich hab sowas leider noch nicht eingesetzt aber bin mir recht sicher das es Volltext basierte Werkzeuge für diverse Server gibt. Daraus könnte man eventuell etwas bauen.
c) Du machst es mit dynamischem SQL das alle Tabellen/Spalten ausließt und dir deinen Code aus a zusammen setzt.

Zu 2a mal ein Beispiel:
Code:
INSERT INTO tabelle_result(UserID,Quelltabelle,Spalten)
SELECT UserID,'tabelleA','spalteA'
FROM tabelleA
WHERE UserID = 1234
AND spalteA IS NOT NULL
UNION ALL
SELECT UserID,'tabelleA','spalteB'
FROM tabelleA
WHERE UserID = 1234
AND spalteB IS NOT NULL
UNION ALL
[...]
 
Zurück
Oben