Змінні у Transact-SQL

Змінні позначаються префіксом @; наприклад @ MyVariable. Як і тимчасові таблиці, змінні мають дві області дії: локальну та глобальну. Глобальні змінні позначаються подвійним символом @: @ @ VERSION.

 

Всі глобальні змінні визначаються SQL Server, і не можна визначити їх самостійно. Крім того, область дії локальних змінних ще вужче, ніж у локальних таблиць: вони доступні тільки в межах пакету або процедури, в якій вони оголошені.

 

Локальні змінні

Оголошення локальної змінної:

DECLARE @local_variable type

Після створення, локальна змінна спочатку має значення NULL. Ви можете привласнити змінній значення наступними способами:

SET @myCharVariable = 'Hello, World'

SELECT @myCharVariable = 'Hello, World' SELECT @myCharVariable = MAX (OilName) FROM Oils Оператор присвоєння (=) заміщає друге ключове слово SELECT; воно вдруге не повторюється. INSERT INTO @myTableVariableSELECT * FROM Oils

 

Також можна використовувати синтаксис 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