2016-03-28 4 views
0

Ich habe die folgenden zwei VerfahrenWie man in einem temptable aus einer gespeicherten Prozedur

1) PROC_A gibt zwei Tabellen, wenn sie ausgeführt zB Tabelle 1 und Tabelle 2

2) In PROC_B muss ich einfügen, den Inhalt einfügen Tabelle 1 als zurück von PROC_A in eine temptable innerhalb PROC_B die Spalten von TABLE1 Ausführung können

wechseln ich in PROC_B versuchen so etwas

INSERT INTO #tem1 FROM EXEC PROC_A 

Wie kann ich tun, dass es nicht

Antwort

0

wenn Ihre temporäre Tabelle arbeiten bereits definiert ist, dann tun Sie

INSERT INTO #tem1 
EXEC PROC_A 

wenn nicht dann,

sELECT * INTO #tem1 
FROM OPENROWSET('SQLNCLI', 'server=(local);trusted_connection=yes', 
'your query') 

Sie müssen auch ADHOC ermöglichen verteilte Abfragen für offene Abfrage zu arbeiten ..

sp_configure 'show advanced options', 1 
reconfigure 
go 
sp_configure 'Ad Hoc Distributed Queries', 1 
reconfigure 

Sie können auch beschreiben Ergebnismenge DMV in 2012, um den Datentyp zu sehen s für die query.The Idee zurückgekehrt ist gesetzt in temporäre Tabelle einfügen Ausgabe von Ergebnis beschreiben und dynamisch one..Further Notiz, wenn Ihr SP führt zwei Ergebnissätze bauen, wird nur ein ..

sp_describe_first_result_set @tsql = N'SELECT object_id, name, type_desc FROM sys.indexes' 
+0

temporäre Tabelle wird nicht gibt es eine andere Art und Weise definiert ich weiß nicht, ob ich sp_configure in diesem Projekt – user3048027

+0

öffnet Reihe Satz zu verwenden ist der einzige Weg, um eine dynamische Temperatur erlaubt wird bauen Tabelle – TheGameiswar

0
CREATE TABLE #tmp 
(
    Col1 SMALLINT, 
    Col2 SMALLINT, 
    Col3 SMALLINT, 
    Col4 SMALLINT, 
    Col5 SMALLINT, 
    . 
    . 
    . 
) 

INSERT INTO #tmp 
EXEC PROC_A 

SELECT * FROM #tmp 

Drop table #tmp 
zurückgegeben werden

Dies ist für Sie gearbeitet ...

Verwandte Themen