Hallo
Ich stehe vor einem etwas schwerem Problem: Es wir eine „dynamische“ View (Ansicht) gebraucht. (Eine View ist im Grunde eine abgespeicherte select Abfrage, die man beim Lesen wie eine Tabelle, ansprechen kann.)
In dieser select abfragen, sollen Ergebnisse von mehreren select Abfragen zusammengefasst werden.
Kein Problem: UNION ALL
Select name from tab1
UNION ALL
Select name from tab2
UNION ALL
Select name from tab2
Das dynamische aber ist, dass die Anzahl der Tabellen, aus der die Namen ausgelesen und zusammen gefasst werden sollen nicht immer gleich ist.
Es gibt eine Tabelle (TabIndex) mit den Spalten: TabID und TabName. Für das obige Beispiel, würde die TabIndex drei Datensätze haben mit den Spalteninhalten: tab1, tab2 und tab3.
Gearbeitet wird mit MS SQL Server 2008
Ich dachte, dass ich mir den eigentlichen select Befehl (z.B: „Select name from tab1“) in einen String („StrSQL“) zusammen baue, und diesen dann per „EXEC StrSQL“ ausführe.
Dies würde ich dann in einer Schleife (CURSON) machen und den Inahlt von TabIndex durchlaufen. Für jeden Datensatz bzw. für jeden TabName in TabIndex würde ich „EXEC ‘select name from ‘ & TabName “ machen. Aber wie fasse ich dann diese Rückgaben zusammen und lasse sie dann als eine große gemeinsame Rückgabe eines select bzw. View ausgeben?
Danke
Ich stehe vor einem etwas schwerem Problem: Es wir eine „dynamische“ View (Ansicht) gebraucht. (Eine View ist im Grunde eine abgespeicherte select Abfrage, die man beim Lesen wie eine Tabelle, ansprechen kann.)
In dieser select abfragen, sollen Ergebnisse von mehreren select Abfragen zusammengefasst werden.
Kein Problem: UNION ALL
Select name from tab1
UNION ALL
Select name from tab2
UNION ALL
Select name from tab2
Das dynamische aber ist, dass die Anzahl der Tabellen, aus der die Namen ausgelesen und zusammen gefasst werden sollen nicht immer gleich ist.
Es gibt eine Tabelle (TabIndex) mit den Spalten: TabID und TabName. Für das obige Beispiel, würde die TabIndex drei Datensätze haben mit den Spalteninhalten: tab1, tab2 und tab3.
Gearbeitet wird mit MS SQL Server 2008
Ich dachte, dass ich mir den eigentlichen select Befehl (z.B: „Select name from tab1“) in einen String („StrSQL“) zusammen baue, und diesen dann per „EXEC StrSQL“ ausführe.
Dies würde ich dann in einer Schleife (CURSON) machen und den Inahlt von TabIndex durchlaufen. Für jeden Datensatz bzw. für jeden TabName in TabIndex würde ich „EXEC ‘select name from ‘ & TabName “ machen. Aber wie fasse ich dann diese Rückgaben zusammen und lasse sie dann als eine große gemeinsame Rückgabe eines select bzw. View ausgeben?
Danke