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:
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
TableName und TableFKey werden Eingaben der gespeicherten Prozedur sein.
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%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%Tags und Links sql sql-server