2016-05-12 1 views
5

Hier Modifizierung ist die gespeicherte BeispielprozedurSQL Server: wie bestimmte Spalte von Stored Procedure zu erhalten, ohne es

DECLARE @ReturnTable TABLE (DateTime DATETIME,  
          WrongUSSD VARCHAR(30), 
          AllMSISDN INT,  
          UniqueMSISDN INT, 
          SubscriptionActivated INT) 

SELECT * 
FROM @ReturnTable 

Änderung in gespeicherte Prozedur ist nicht erlaubt, ich brauche nur bestimmte Spalte bilden dieses Verfahren durch select-Anweisung.

Ich habe versucht, diese

select WrongUSSD 
FROM openrowset('MSDASQL', 'Driver={SQL SERVER}; Server=server_name;UID=user; PWD=pass;Trusted_Connection=yes;', 'EXEC [DatabaseName].[dbo].[ProcedureName] "2016-01-01","2016-04-01"') as a 

Diese Methode funktioniert nicht, wenn der Link-Server gespeicherte Prozedur ist

existiert Gibt es eine andere Methode ?? Bitte helfen

+0

Warum müssen Sie es nur eine Spalte zurückgeben? – shawnt00

Antwort

1

temporäre Tabelle verwenden:

INSERT INTO #TempTable 
EXEC [dbo].[ProcedureName] 

SELECT WrongUSSD 
FROM #TempTable 
+0

Danke für die Antwort, Ja, es funktioniert, aber das Problem ist, ich habe viele gespeicherte Prozedur, aus denen ich Spalte abrufen muss, müssen viele temporäre Tabelle erstellen (fast 50-60 temporäre Tabelle). Gibt es noch andere Methoden? –

+0

Ich habe auch das Problem mit der temporären Tabelle ist verschachtelte einfügen, gibt es bereits viele einfügen Abfrage in gespeicherten Prozedur, so verschachtelte einfügen erstellt die Probleme –