Verwenden von EXEC innerhalb der SELECT-Anweisung in SQL Server

9

Ich muss exec innerhalb von select verwenden. Die Abfrage für die Exec wird gemäß den Spalten der Tabelle erstellt, für die eine Select-Klausel verwendet wird. Was ich tun möchte, ist etwas wie folgt:

%Vor%

Hier ist GetStringForIsActive die gespeicherte Prozedur, die ich für jede aus MasterTableForLanguage ausgewählte Zeile ausführen möchte.
Die stored procedure verwendet EXEC , um die folgende Zeichenfolge auszuführen

%Vor%

TableName und TableFKey werden Eingaben der gespeicherten Prozedur sein.

    
Ruchit Rami 27.06.2012, 09:19
quelle

3 Antworten

3

Verwenden Sie Funktionen anstelle gespeicherter Prozeduren in SELECT-Klausel.

Bearbeitet:

Erstellen Sie diese Funktion

%Vor%

dann

%Vor%

Macht das Sinn?

    
Boomer 27.06.2012 09:24
quelle
1

Wenn Sie Ihre gespeicherte Prozedur GetStringForIsActive ändern können, um TableName, TableFKey und IsActive zurückzugeben, können Sie einen Cursor verwenden, um es für jede Zeile auszuführen und die Ergebnisse zu einer temporären Tabelle hinzuzufügen.

ie:

%Vor%

Der Code wäre wie folgt:

%Vor%     
Lex 27.06.2012 10:12
quelle
0

Nun, ich denke, um die ganze Frage zu beantworten, glaube ich nicht, dass eine gespeicherte Prozedur EXEC eine SELECT-Anweisung ausführen würde, sie würde einfach SELECT ausführen.

Sie EXEC Ihre aktuelle proc und übergeben Sie es Vars, und es gibt einen Wert basierend auf der SELECT-Anweisung, die es ausgeführt wird. Es gibt diese Anweisung nicht aus, sondern führt nur eine Auswahl aus. Ich habe mehrere gespeicherte Procs, die ich täglich in einigen SQL-Agentenprozessen verwende. Sie führen alle Selects durch, um verschiedene Tabellen abzufragen, und keiner von ihnen ruft einen EXEC auf, um diese Aktionen auszuführen. Dies ist mein eigenes Beispiel:

%Vor%

Wie bereits erwähnt, wäre der effektivste Weg, um Ihre Abfrage durchzuführen, die Auswahl innerhalb einer Funktion, etwas ähnliches wie ich denke, wird tun:

%Vor%

Sie könnten dann genau das machen, was Sie wollen ...

%Vor%     
user2746894 05.05.2017 17:13
quelle

Tags und Links