Змінні позначаються префіксом @; наприклад @ MyVariable. Як і тимчасові таблиці, змінні мають дві області дії: локальну та глобальну. Глобальні змінні позначаються подвійним символом @: @ @ VERSION.
Всі глобальні змінні визначаються SQL Server, і не можна визначити їх самостійно. Крім того, область дії локальних змінних ще вужче, ніж у локальних таблиць: вони доступні тільки в межах пакету або процедури, в якій вони оголошені.
Локальні змінні
Оголошення локальної змінної:
DECLARE @local_variable typeПісля створення, локальна змінна спочатку має значення NULL. Ви можете привласнити змінній значення наступними способами:
SET @myCharVariable = 'Hello, World'
Також можна використовувати синтаксис INSERT INTO ... VALUES.
Використання змінних
Змінні можуть використовуватися у всіх виразах мови Transact-SQL. Однак, вони не використовуються замість імені об'єкта або ключового слова. Таким чином, представлені нижче оператори будуть коректними:
DECLARE @theOil char(20)SET @theOil = 'Basil'
-- Ця команда буде виконана
SELECT OilName, DescriptionFROM OilsWHERE OilName = @theOilАле обидва наступних оператора SELECT не будуть виконані:
DECLARE @theCommand char(10), @theField char(10)SET @theCommand = 'SELECT'SET @theField = 'OilName'-- Ця команда не буде виконана
@theCommand * FROM Oils-- І ця також
SELECT @theField from Oils