Verwenden Sie OPENROWSET, um gespeicherte Prozedurergebnisse in eine temporäre Tabelle einzufügen
Die direkte Verwendung der SELECT * INTO
-Anweisung zum Einfügen der Ergebnisse einer gespeicherten Prozedur in eine temporäre Tabelle kann aufgrund von Syntaxfehlern fehlschlagen. Die Lösung besteht darin, die Methode OPENROWSET
zu verwenden.
Zuerst müssen Sie verteilte Ad-hoc-Abfragen aktivieren:
<code class="language-sql">sp_configure 'Show Advanced Options', 1 GO RECONFIGURE GO sp_configure 'Ad Hoc Distributed Queries', 1 GO RECONFIGURE GO</code>
Wenn diese Option aktiviert ist, kann der folgende Code verwendet werden, um die Ergebnisse der gespeicherten Prozedur in eine temporäre Tabelle einzufügen, ohne die Tabellenstruktur vorab zu definieren:
<code class="language-sql">CREATE PROC getBusinessLineHistory AS BEGIN SELECT * FROM sys.databases END GO SELECT * INTO #MyTempTable FROM OPENROWSET('SQLNCLI', 'Server=(local)\SQL2008;Trusted_Connection=yes;', 'EXEC getBusinessLineHistory') SELECT * FROM #MyTempTable</code>
In diesem Beispiel gibt die gespeicherte Prozedur getBusinessLineHistory
die Daten der Tabelle sys.databases
zurück. Durch OPENROWSET
können die Ergebnisse der gespeicherten Prozedur effizient in die temporäre Tabelle #MyTempTable
eingefügt werden.
Das obige ist der detaillierte Inhalt vonWie fügt ich mit OpenRowSet in eine temporäre Tabelle ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!