SQL IF ELSE BEGIN END
Wenn es keine begin-und end-Anweisungen in sql, die nächste Anweisung ist die einzige, die wird ausgeführt, wenn die if-Bedingung wahr ist...in dem Fall unten, es ist trotzdem der insert-Anweisung wird auch ausgeführt, wenn die if-Bedingung wahr ist?
IF (a > 1)
SET @b = 1 + 2
INSERT INTO #F (a, b, c) VALUES (1, 2, 3)
Eigentlich ist der INSERT-Anweisung wird ausgeführt, wenn die IF-Bedingung wahr ist. Es wird auch ausgeführt, wenn die IF-Bedingung falsch ist.
InformationsquelleAutor | 2009-09-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die insert-Anweisung aufgerufen wird, in allen Fällen unabhängig von der wenn-Klausel der if-Klausel wird nur die eine Zeile
wenn Sie nicht sicher sind, fügen Sie die begin-und end - (eigentlich habe ich immer begin und end, auch wenn es eine Zeile zu beginnen, wissen Sie nie, wenn Sie oder jemand anderes werden müssen, um eine weitere Zeile hinzufügen)
InformationsquelleAutor Mark
InformationsquelleAutor madcolor
Es ist Begin/End-Klausel in TSQL.
InformationsquelleAutor Novitzky
Ich bin mir nicht sicher, ob das stimmt, aber warum nicht einfach wickeln Sie es in ein begin/end-und nicht sich darüber sorgen machen?
InformationsquelleAutor Gratzy
Versuchen Sie dies:
InformationsquelleAutor Pete OHanlon
In deinem Beispiel die insert-Anweisung wird IMMER ausgeführt, da es nicht ausgewertet werden, als Teil der IF-Anweisung.
Beispielcode für MS SQL Server:
Entspricht das schreiben:
InformationsquelleAutor Bob Black