Использование конструкции IF...ELSE

С помощью инструкции IF проверяется выполнение условия. Результирующий поток управления зависит от того, указана ли необязательная инструкция ELSE:

  • Инструкция IF задана без ELSE
    Если результатом выполнения инструкции является значение TRUE, то выполняется инструкция или блок инструкций, следующие за IF. Если результатом выполнения инструкции является значение FALSE, то инструкция или блок инструкций, следующие за IF, пропускаются.
  • Инструкция IF задана с ELSE
    Если результатом выполнения инструкции является значение TRUE, то выполняется инструкция или блок инструкций, следующие за IF. После этого управление переходит к точке после инструкции или блока инструкций, следующих после ELSE. Если результатом выполнения инструкции является значение FALSE, то инструкция или блок инструкций, следующие за инструкцией IF, пропускаются и выполняется инструкция или блок инструкций, следующие после необязательной инструкции ELSE.

Например, если хранимая процедура сохранила какие-либо коды ошибок, возвращенные функцией @@ERROR в транзакции, в ее заключительном фрагменте может содержаться примерно следующая инструкция:

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

См. также

Другие ресурсы

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

Справка и поддержка

Получение помощи по SQL Server 2005