Локальные переменные являются важным процедурным расширением языка Transact-SQL. Они используются для хранения значений (любых типов) в пакетах или подпрограммах. Они являются «локальными» потому, что на них можно сослаться только в том же пакете, в котором они определены. Database Engine также поддерживает глобальные переменные, которые описываются.
Каждая локальная переменная должна быть определена с использованием оператора declare. Синтаксис оператора declare см. в примере 8.3. Определение каждой переменной содержит ее имя и соответствующий тип данных. К переменным всегда выполняется обращение с использованием префикса @. Присваивание значений локальным переменным выполняется с помощью следующих конструкций:
♦ специальной формы оператора select;
♦ оператором set.
Использование обоих операторов для назначения значений демонстрируется в примере 8.3.
Пакет в примере 8.3 вычисляет среднее значение всех бюджетов проектов и сравнивает это значение с бюджетом проекта pi. Если это последнее значение меньше, чем вычисленное значение, то бюджет проекта pi увеличивается назначение локальной переменной @extra_budget.