Heim >Datenbank >MySQL-Tutorial >Wie füge ich gespeicherte Prozedurergebnisse in eine temporäre Tabelle ein, ohne deren Struktur zu definieren?
Problem: Wie kann man eine temporäre Tabelle mit den Ergebnissen einer gespeicherten Prozedur füllen, ohne das Tabellenschema vorher explizit zu definieren?
Lösung: Nutzen Sie die Funktion OPENROWSET
. Diese Funktion führt eine Remote-Abfrage aus und fügt die Ergebnisse direkt in eine temporäre Tabelle ein, wobei die Tabellenstruktur dynamisch aus der Ausgabe der Abfrage abgeleitet wird.
Hier ist ein Beispiel:
<code class="language-sql">-- Sample Stored Procedure CREATE PROC getBusinessLineHistory AS BEGIN SELECT * FROM sys.databases END GO -- Enable Ad Hoc Distributed Queries (required for OPENROWSET) sp_configure 'Show Advanced Options', 1 GO RECONFIGURE GO sp_configure 'Ad Hoc Distributed Queries', 1 GO RECONFIGURE GO -- Insert results into temporary table using OPENROWSET SELECT * INTO #MyTempTable FROM OPENROWSET('SQLNCLI', 'Server=(local)\SQL2008;Trusted_Connection=yes;', 'EXEC getBusinessLineHistory') -- Verify the data SELECT * FROM #MyTempTable</code>
Dieser Code definiert zunächst eine gespeicherte Beispielprozedur (getBusinessLineHistory
). Entscheidend ist, dass dann „Ad-hoc-verteilte Abfragen“ mithilfe von sp_configure
aktiviert werden. Dies ist Voraussetzung für die Verwendung von OPENROWSET
.
OPENROWSET
führt die gespeicherte Prozedur remote aus und die zurückgegebenen Daten werden automatisch in #MyTempTable
eingefügt. Die Struktur der temporären Tabelle wird dynamisch basierend auf den von der gespeicherten Prozedur zurückgegebenen Datentypen erstellt. Abschließend bestätigt eine SELECT
-Anweisung das erfolgreiche Einfügen der Daten. Dieser Ansatz vermeidet die Notwendigkeit, das Schema der temporären Tabelle manuell zu definieren.
Das obige ist der detaillierte Inhalt vonWie füge ich gespeicherte Prozedurergebnisse in eine temporäre Tabelle ein, ohne deren Struktur zu definieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!