SELECT gegen gespeicherte Prozedur SQL Server

8

SELECT Val from storedp_Value im Abfrageeditor von SQL Server Management Studio ist das möglich?

AKTUALISIEREN

Ich habe versucht, eine temporäre Tabelle zu erstellen, aber es schien nicht zu funktionieren, weshalb ich darum gebeten habe.

%Vor%

Gespeicherte Prozedur UpdateBatch

%Vor%

Was mache ich falsch und wie rufe ich es aus dem Abfragefenster?

UPDATE # 2

Okay, ich würde mich über Hilfe, Richtung oder irgendetwas freuen - das ist es, was ich erreichen möchte.

%Vor%

Dies ist Teil einer größeren Select-Anweisung. Jede Hilfe würde sehr geschätzt werden. Im Wesentlichen ist diese SQL-Anweisung fehlerhaft, da wir für Oracle migriert haben.

    
Nate 17.07.2013, 10:45
quelle

6 Antworten

11

Nun, nein. Um aus einer gespeicherten Prozedur auszuwählen, können Sie Folgendes tun:

%Vor%

Wenn Sie die Ergebnisse einer gespeicherten Prozedur auf diese Weise verwenden, und Sie die gespeicherte Prozedur geschrieben haben, sollten Sie ernsthaft erwägen, den Code als Ansicht oder benutzerdefinierte Funktion zu ändern. In vielen Fällen können Sie diesen Code durch ein einfacheres, besser geeignetes Konstrukt ersetzen.

    
Gordon Linoff 17.07.2013, 10:51
quelle
5

Dies ist in SQL Server nicht möglich, Sie können die Ergebnisse in eine temporäre Tabelle einfügen und dann das

weiter abfragen %Vor%

Oder Sie können OPENQUERY verwenden, aber dafür müssen Sie einen Verbindungsserver einrichten, das SQL ist

%Vor%     
T I 17.07.2013 10:54
quelle
1

Der beste Artikel (meiner Meinung nach) über alle möglichen Methoden zum Austausch von Daten zwischen gespeicherten Prozeduren in SQL Server finden Sie hier: Ссылка

    
Konstantin Taranov 30.04.2014 15:27
quelle
0

Versuchen Sie es

Ändern Sie "Zurück"

%Vor%

auf "Auswählen"

%Vor%     
tsohtan 17.07.2013 11:52
quelle
0

Mein Ansatz

%Vor%     
user3588999 30.04.2014 11:02
quelle
0

Ich muss etwas verpassen.

Da Ihre gespeicherte Prozedur keine Ergebnismenge zurückgibt und stattdessen eine ganze Zahl zurückgibt, indem Sie die RETURN-Funktion gespeicherter Prozeduren verwenden, können Sie einfach KEINE INSERT in eine Tabelle einfügen (da überhaupt keine Ergebnismenge zurückkommt). .

ABER, Sie können (vorausgesetzt, dass dies iterativ und nicht über eine Menge getan wird) einfach den Rückgabewert in eine lokale Variable speichern und den Wert dieser Variablen in die Tabelle einfügen, die notwendig ist.

Wenn Sie jedoch einfach den Wert in den Ergebnissen eines Abfragefensters in SSMS zurückgeben möchten, ist das Ausführen von INSERT und SELECTING zu viel Aufwand. Es scheint mir, als würde DIES (in einem Abfragefenster) genügen:

%Vor%

Wenn dies weit von der Basis entfernt ist, geben Sie bitte die DDL für "batchno_seq" an, vielleicht kann ich auf diese Weise besser helfen.

Prost!

    
Steve Rowland 21.01.2015 23:23
quelle