![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
В 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 переменная | строка Длина строки с сообщением не должна превышать 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 | Нарушение авторского права страницы