Ermitteln, ob in einer Variablen gespeicherte SQL-Zeilen zurückgegeben werden

8

Wenn ich ein SQL-Skript in einer Variablen wie diesem gespeichert habe:

%Vor%

Wie kann ich feststellen, ob @SQL irgendwelche Zeilen zurückgibt, wenn ich es ausführen würde?

In der Tat:

%Vor%

Ich möchte dies ausprobieren, ohne das Skript in @SQL ausführen zu müssen, das in eine Tabelle einzufügen und die Zeilen zu zählen.

    
Craig HB 10.10.2011, 21:20
quelle

3 Antworten

9

Natürlich müssen Sie das Skript ausführen. Um zu vermeiden, dass Sie das Ergebnis in eine Tabelle einfügen und die Zeilen zählen müssen, können Sie sp_executesql und einen Ausgabeparameter verwenden.

%Vor%     
Martin Smith 10.10.2011, 21:25
quelle
2

Während Martins Antwort auch gültig ist, können wir nicht einfach @@ RowCount nach dem Ausführen des Skripts verwenden? wie

%Vor%

Beachten Sie, dass die Abfrage eine Variablendeklaration enthält, die offensichtlich nicht mit Exists ()

verwendet werden kann     
sallushan 11.10.2011 08:07
quelle
0

Sie können eine Out-of-the-Box-Lösung ausprobieren.

Zum Beispiel. Verfolgen Sie eine einzelne Variable mit dem Namen emp_over_80. Immer wenn Sie einen Mitarbeiter über dieses Alter hinzufügen, emp_over_80 ++. Wenn Sie einen entfernen, emp_over_80--

Führen Sie zu Beginn eines jeden Tages eine Abfrage aus, um den Wert von emp_over_80 zu ermitteln (möglicherweise ist dies der Geburtstag eines Mitarbeiters). Dann können Sie im Laufe des Tages auf emp_over_80 verweisen, anstatt die SQL-Abfrage erneut auszuführen.

Andere Optionen wären, die Tabelle der Mitarbeiter nach Alter sortiert zu halten. Wenn der letzte Mitarbeiter über 80 ist, gibt Ihre Abfrage mindestens eine Zeile zurück.

Nun könnten viele sagen, dass dies schreckliche Programmierpraktiken sind, und ich stimme ihnen zu. Aber ich sehe keinen anderen Weg, das Ergebnis (auch ein Teilergebnis) einer Abfrage magisch zu kennen, bevor es ausgeführt wird.

    
Perry Horwich 10.10.2011 21:33
quelle

Tags und Links