Exec stored procedure in dynamische temp-Tabelle
Mein wissen; was ich tun möchte, ist nicht möglich, in sql, aber es lohnt sich zu Fragen Sie die Jungs.
Können sagen, ich habe eine gespeicherte Prozedur abc, gibt die Spalten Id und Wert. Diese gespeicherte Prozedur wird hauptsächlich verwendet wird, die von anderen Abteilungen aus funktionalen Gründen, und ich werde es nur verwenden und hin und wieder für Daten überprüft.
So mit es als Teil meiner gespeicherten Prozedur:
DECLARE @tABC TABLE
(
ID INT,
Value DECIMAL(12,2)
)
INSERT INTO @tABC
EXEC OtherDb.DataProd.abc
Oky so, das wird funktionieren perfekt für jetzt, aber was ist, wenn Sie ändern die Struktur Ihrer gespeicherten Prozedur?
Hinzufügen oder entfernen einer Spalte aus Ihrer gespeicherten Prozedur bricht mein code, so gibt es einen Weg, um meinen code flexibler.
Mein letzten Versuch ging so etwas wie dieses:
WITH tempTable AS
(
EXEC OtherDb.DataProd.abc
)
SELECT ID, Value FROM tempTable
Was natürlich kläglich gescheitert.
InformationsquelleAutor der Frage JAT | 2013-11-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
InformationsquelleAutor der Antwort Raj
Insert in eine temporäre Tabelle. Ich weiß, das funktioniert in 2008 und höher, nicht sicher über 2005. Temp-Tabelle die Spalten müssen mit Ihrem Stored Proc Spalten.
InformationsquelleAutor der Antwort Tim Melton
Sonst haben Sie einen Blick auf hier, es gibt weitere Optionen dort erklärt: Legen Sie die Ergebnisse einer gespeicherten Prozedur in eine temporäre Tabelle?
InformationsquelleAutor der Antwort NickyvV
ist es besser, und einfache Möglichkeit zur Verwendung von openrowset
SELECT * INTO #tempTable FROM OPENROWSET('SQLNCLI', 'Server=localhost;Trusted_Connection=yes;',
'EXEC OtherDb.DataProd.abc')
InformationsquelleAutor der Antwort Ali Yesilli