Табличные переменные



Табличные переменные (table variable) позволяют сохранить содержимое целой таблицы. Формальный синтаксис определения подобной переменной во многом похож на создание таблицы:

1
2
3
4
DECLARE @табличная_переменная TABLE
(столбец_1 тип_данных [атрибуты_столбца],
 столбец_2 тип_данных [атрибуты_столбца] ....)
 [атрибуты_таблицы]

Например:

1
DECLARE @ABrends TABLE (ProductId INT,  ProductName NVARCHAR(20))

В данном случае переменная @ABrends будет содержать два столбца.

В дальнейшем мы сможем работать с этой переменной как с обычной таблицей, то есть добавлять в нее данные, изменять, удалять и извлекать их:

1
2
3
4
5
6
7
DECLARE @ABrends TABLE (ProductId INT,  ProductName NVARCHAR(20))
 
INSERT INTO @ABrends
VALUES(1, 'iPhone 8'),
(2, 'Samsumg Galaxy S8')
 
SELECT * FROM @ABrends

табличные переменные в T-SQL и MS SQL Server

Однако следует учитывать, что такие переменные не полностью эквивалентны таблицам. Они живут в пределах одного пакета, после завершения работы которого они удаляются. То есть они носят временный характер, и физически их данные нигде не хранятся на жестком диске.