Freigeben über


Verwenden von IF...ELSE

Die IF-Anweisung wird verwendet, um auf eine bestimmten Bedingung zu testen. Die sich ergebende Ablaufsteuerung hängt davon ab, ob die optionale ELSE-Anweisung angegeben wird:

  • IF ohne ELSE angegeben
    Wenn die Bedingung in der IF-Anweisung zu TRUE ausgewertet wird, wird die Anweisung oder der Block von Anweisungen nach der IF-Anweisung ausgeführt. Wenn die Bedingung in der IF-Anweisung FALSE ergibt, wird die Anweisung oder der Block von Anweisungen nach der IF-Anweisung ausgelassen.
  • IF mit ELSE angegeben
    Wenn die Bedingung in der IF-Anweisung TRUE ergibt, wird die Anweisung oder der Block von Anweisungen nach der IF-Anweisung ausgeführt. Die Ablaufsteuerung springt dann an die Stelle nach der Anweisung oder dem Block von Anweisungen nach der ELSE-Anweisung. Wenn die Bedingung in der IF-Anweisung FALSE ergibt, wird die Anweisung oder der Block von Anweisungen nach der IF-Anweisung ausgelassen, und die Anweisung oder der Block von Anweisungen nach der optionalen ELSE-Anweisung wird ausgeführt.

Wenn z. B. eine gespeicherte Prozedur ggf. die von @@ERROR während einer Transaktion zurückgegebenen Fehlercodes gespeichert hat, enthält sie möglicherweise eine IF-Anweisung am Ende der Prozedur, die etwa so aussieht:

IF (@ErrorSaveVariable <> 0)
BEGIN
   PRINT 'Errors encountered, rolling back.'
   PRINT 'Last error encountered: ' +
      CAST(@ErrorSaveVariable AS VARCHAR(10))
   ROLLBACK
END
ELSE
BEGIN
   PRINT 'No Errors encountered, committing.'
   COMMIT
END
RETURN @ErrorSaveVariable

Siehe auch

Andere Ressourcen

ELSE (IF...ELSE) (Transact-SQL)
IF...ELSE (Transact-SQL)

Hilfe und Informationen

Informationsquellen für SQL Server 2005