Angenommen, ich habe eine Abfrage in einer Variablen wie folgt gespeichert (es ist tatsächlich dynamisch bevölkert und komplexer werden, aber das ist zu Demonstrationszwecken):SQL „wenn vorhanden ...“ dynamische Abfrage
DECLARE @Query VARCHAR(1000) = 'SELECT * FROM dbo.MyTable'
Gibt es eine Möglichkeit zu überprüfen, ob die Abfrage Ergebnisse zurückgeben würde? So etwas wie dies, aber das funktioniert nicht:
IF EXISTS (@Query)
BEGIN
-- do something
END
Die einzige Möglichkeit, die ich denken kann, dies zu tun ist, die Ergebnisse in einer temporären Tabelle zu setzen und dann von der Abfrage, aber das ist nicht ideal, weil Die Spalten in der dynamischen Abfrage können variieren und ich brauche die temporäre Tabelle aus keinem anderen Grund als nur zu überprüfen, ob einige Zeilen zurückgegeben werden. Gibt es einen besseren Weg?
Dann versuchen Sie mit EXISTS Unterabfrage .... Tun Sie etwas wo existiert (wählen Sie 1 aus dbo.MyTable). Letztendlich überprüfen Sie diese Tabelle, um etwas anderes zu tun, wenn Datensätze in dieser Tabelle vorhanden sind. – knkarthick24
Die Unterabfrage ist dynamisch und wird wie oben gezeigt in einer Variablen gespeichert. 'EXISTS' funktioniert nicht, wenn es dynamisch ist. – mayabelle