Dynamische-Abfrage-Ergebnisse in eine temporäre Tabelle oder eine Tabellenvariable

Ich habe eine gespeicherte Prozedur, die verwendet sp_executesql generiert eine Ergebnismenge, die Anzahl der Spalten im Ergebnis kann variieren, liegen aber in form von Col1 Col2 Col3 etc.

Ich brauche, um das Ergebnis in eine temp-Tabelle oder table-Variablen, damit ich damit arbeiten kann. Das problem ist, ich brauchen, um zu definieren die Spalten der temporären Tabelle, die ich nicht tun, die dynamisch mithilfe von sp_executesql der Umfang der temp-Tabelle verloren, wenn der Befehl ausgeführt wird.

Ich spielte mit der Idee, Globale temporäre Tabellen, da der Umfang erlaubt es, dynamisch erstellt werden, es ist jedoch eine sehr gute chance, die Globalen Temps aktualisiert würde durch die gleichzeitige Ausführung von diesem Prozess.

Irgendwelche Ideen?

SQL ist in der Regel orientiert Herstellung von Ergebnis-sets mit der gleichen "Form" - der gleichen Spalten (Namen, Typen) jedes mal, wenn die Abfrage ausgeführt wird. Während Sie produzieren können, die variable result sets mit verschiedenen hacks, wäre es besser, zu versuchen, wieder Arbeit zu Ihrer Lösung zu diesem Modell passen Abfragen. Sie zeigen auch eine sehr prozedurale Ansatz (1. ich erstelle dieses Ergebnis gesetzt, dann Mach ich weiter mit ihm arbeiten), die wiederum ist nicht, was SQL ist gedacht, um sein über - Sie werden einen Weg finden, um zu beschreiben, Ihre gewünschte Ergebnis, und lassen Sie die SQL Server-Schwitzen die details, wie das geschieht.
duplizieren- stackoverflow.com/questions/840968/...
Nicht ein Duplikat ist, habe ich ausgeschlossen, die Verwendung von Globalen temporären Tabellen als eine Lösung für mich.

InformationsquelleAutor SausageFingers | 2011-05-23

Schreibe einen Kommentar