Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Управляющие операторы



В Transact-SQL существуют специальные команды, которые позволяют управлять потоком выполнения сценария, прерывая его или направляя в нужную логику.

Оператор Описание
BEGIN...END Определяет блок. BEGIN {оператор_SQL | блок _операторов} END
IF...ELSE Условный оператор. IF логическое_выражение {оператор_SQL | блок _операторов} [ELSE [логическое_выражение] {оператор_SQL | блок _операторов}
RETURN Безусловный выход. RETURN ([ integer_expression ]) Возвращаемое значение – это код возврата, причем часть значений(-14.. 0) зарезервирована под специальные состояния
WHILE Цикл с предусловием. WHILE логическое_выражение {оператор_SQL | блок _операторов}
BREAK Выход из цикла WHILE
CONTINUE Продолжение цикла WHILE
PRINT Выдает заданное значение на экран. PRINT переменная | строка Длина строки с сообщением не должна превышать 255 символов
CASE Простое выражение CASE для определения результата сравнивает выражение с набором простых выражений CASE выражение WHEN выражение1 THEN результат1 [[WHEN выражение 2 THEN результат2[..n]] [ELSE результатN] END
CASE Поисковое выражение CASE для определения результата вычисляет набор логических выражений. CASE WHEN логическое_выражение THEN результирующее_ выражение [...n ] [ ELSE else_ результирующее_ выражение] END
TRY...CATCH Реализация обработчика ошибок. Перехватывает все ошибки исполнения с кодом серьезности, большим 10, которые не закрывают подключение к базе данных. BEGIN TRY { оператор_SQL | блок _операторов } END TRY BEGIN CATCH [ { оператор_SQL | блок _операторов } ] END CATCH
RAISERROR Создает сообщение об ошибке и запускает обработку ошибок для сеанса. RAISERROR ({ номер_сообщения | строка_сообщения | @переменная } {,степень_серьезности,состояние } [,аргументы_подстановки [,...n ] ]) [ WITH option [,...n ] ] номер_сообщения - Определяемый пользователем номер сообщения об ошибке, который хранится в представлении каталога sys.messages с помощью sp_addmessage строка_сообщения - Определенное пользователем сообщение с форматом, аналогичным формату функции printf из стандартной библиотеки языка С степень_серьезности - Степень серьезности от 0 до 18 может указать любой пользователь. Степени серьезности от 19 до 25 могут быть указаны только членами предопределенной роли сервера sysadmin и пользователями с разрешениями ALTER TRACE. Для степеней серьезности от 19 до 25 требуется параметр WITH LOG. Состояние - Целое число от 0 до 255. Отрицательные значения или значения больше 255 вызывают ошибку.
WAITFOR Блокирует выполнение пакета, хранимой процедуры или транзакции до наступления указанного времени или интервала времени WAITFOR { DELAY время_ожидания TIME время_завершения }

Пример использования управляющих конструкций для изменения информа–ции в таблице

WHILE (SELECT AVG(Баланс) FROM R1) > 30000BEGIN UPDATE R1 SET Баланс = Баланс - 100 IF (SELECT MAX(Баланс) FROM R1) < 50000 BREAK ELSE CONTINUEEND Пример использования условного оператора для проверки существования объекта базы данных IF NOT EXISTS (SELECT * FROM master.. sysdatabase WHERE Name = ' MY_BASE ' )BEGIN PRINT ' База данных MY_BAS не существует, создаем ' CREATE DATABASE MY_BASEEND



Дата публикования: 2015-09-17; Прочитано: 175 | Нарушение авторского права страницы



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...