2016-04-14 6 views
0

Ich habe eine gespeicherte Prozedur, die eine Tabelle zurückgibt. Ich möchte nur die Anzahl der Datensätze ist es möglich,Anzahl der Datensätze einer Tabelle abrufen, die von der gespeicherten Prozedur zurückgegeben werden

Mein Verfahren

create procedure Test 
as begin 
select * From Student 
end 

exec-Test werden die Datensätze aus geben setzen will ich den Grafen

NB: Ich brauche die sp um die Ergebnisse der SELECT-Anweisung zurückzugeben. An einer anderen Stelle brauche ich die Anzahl der von SP zurückgegebenen Datensätze, und die Spalten in der Student-Tabelle sind dynamisch.

Ich erwarte eine Antwort ohne gespeicherte Prozedur zu ändern.

+0

Verwendung COUNT (*) '.. –

+0

@vkp ich meine Frage –

Antwort

1

Sie können die Daten wie folgt in eine temporäre Tabelle auswählen. Sie müssen dazu jedoch OPENQUERY verwenden. Sie müssen auch zuerst den Datenzugriff auf Ihrem Server aktivieren.

Exec sp_serveroption 'ServerName', 'data access', 'true'

SELECT * INTO #TempTable 
FROM OPENQUERY("ServerName", 'EXEC Test') 

SELECT COUNT(*) FROM #TempTable 
+0

bearbeitet habe, ich dies bereits versucht, und dies ist möglich, aber Spalten in Schülertisch ist dynamisch für meine scnario (es kann je nach Anforderung Änderungen geändert werden) –

+0

Ich versuchte dies auch, das war möglich für die Funktion, aber nicht für sp –

+0

Sorry @ Mike Ich habe das schon nicht hilfreich für sp. Konnte select-Anweisung für sp nicht schreiben –

0

NB: Ich brauche die sp die Ergebnisse der SELECT-Anweisung zurückzukehren.

Verwenden Sie Ihre gespeicherte Prozedur wie sie ist. Das heißt,

create procedure Test 
as begin 
select * From Student 
end 

An einer anderen Stelle ich die Anzahl der Datensätze von sp und Spalten in der Schülertisch zurück brauchen, ist dynamisch.

Wenn dieser andere Ort ein anderer SP ist, verwenden Sie rowcount. Sie verwenden es, auf diese Weise:

EXEC [sp_WhateverTheSPNameIs] 
select @@rowcount 

Lesen Sie mehr über @@RowCount. Das ist alles was du brauchst.

+0

Dies funktioniert nicht, da die Frage besagt, dass die Felder in der Tabelle dynamisch sind. Sie geben Felder an, die gruppiert werden sollen, was nicht möglich ist, wenn Sie nicht wissen, wie die Feldnamen lauten. –

+0

Sorry @Satwik, ich habe eine Select-Anweisung in meiner Frage verwendet, um die Frage zu vereinfachen. Eigentlich erwarte ich jede Spalte aus mehreren Master-Tabellen und etwa 20 Spalten, die ich als Ausgabe erwarte. Auch wenn ich nach allen Spalten gruppiere. Meine Leistung wird auch abnehmen. Ich erwarte eine Antwort ohne Änderung sp –

+0

@NithilaShanmugananthan Ich habe meine Antwort bearbeitet. Überprüfen Sie den Bearbeitungsbereich darin. –

Verwandte Themen