Оператор while многократно выполняет один оператор Transact-SQL (или более операторов, заключенных в блок), пока логическое выражение возвращает значение «истина». Другими словами, если выражение истинно, то выполняется оператор (или блок операторов), после чего опять вычисляется логическое выражение, чтобы определить, должен ли снова выполняться оператор (или блок операторов). Этот процесс повторяется, пока выражение не станет ложным.
Блок в операторе while может содержать один из двух операторов, используемых для управления выполнением операторов в блоке: break или continue. Оператор break останавливает выполнение операторов внутри блока и начинает выполнять оператор, следующий сразу за этим блоком. Оператор continue останавливает выполнение только текущего оператора и начинает выполнение блока с его самого начала.
В примере 8.2 показано использование оператора while.
В примере 8.2 бюджет всех проектов будет увеличиваться на 10%, пока общая сумма всех бюджетов не превысит $500 000. При этом, повторное выполнение будет остановлено, если бюджет одного из проектов превысит $240 000. Выполнение примера 8.2 приведет к выдаче следующих сообщений:
(3 rows affected) (3 rows affected) (3 rows affected)