SQL "wenn existiert ..." dynamische Abfrage

7

Angenommen, ich habe eine Abfrage in einer Variablen wie dieser gespeichert (sie ist tatsächlich dynamisch gefüllt und komplexer, aber dies dient Demonstrationszwecken):

%Vor%

Gibt es eine Möglichkeit zu überprüfen, ob die Abfrage Ergebnisse zurückgeben würde? So etwas, aber das funktioniert nicht:

%Vor%

Der einzige Weg, den ich mir vorstellen kann, ist, die Ergebnisse in eine temporäre Tabelle zu stellen und danach abzufragen, aber das ist nicht ideal, weil die Spalten in der dynamischen Abfrage variieren können und ich wirklich nicht brauche die temporäre Tabelle aus irgendeinem Grund, außer zu überprüfen, ob einige Zeilen zurückgegeben werden. Gibt es einen besseren Weg?

    
mayabelle 30.12.2014, 18:01
quelle

4 Antworten

11

Versuchen Sie, Dynamic query auszuführen und @@RowCount zu verwenden, um das Vorhandensein von Zeilen zu finden.

%Vor%     
Pரதீப் 30.12.2014, 18:03
quelle
8

Versuchen Sie Folgendes:

%Vor%     
dario 30.12.2014 18:11
quelle
2

Ich weiß, dass diese Antwort zu spät ist. aber ich lasse das hier, um jemand anderem zu helfen, IF EXISTS mit einer dynamischen Abfrage zu verwenden.

So sollten Sie es mit dynamischen Abfragen tun.

%Vor%

Ich hoffe, das hat jemandem geholfen. Stimmen Sie ab, wenn es geschah:)

    
Sam 23.02.2016 03:10
quelle
0

Sie können EXEC verwenden, um die SQL-Anweisung auszuführen, und dann @@ROWCOUNT aufrufen. Gibt die Anzahl der Zeilen zurück, die von der letzten Anweisung betroffen sind, um zu überprüfen, ob die Zeile in sql select stetement existiert.

%Vor%     
HaveNoDisplayName 30.12.2014 18:11
quelle

Tags und Links