Табличные переменные (table variable) позволяют сохранить содержимое целой таблицы. Формальный синтаксис определения подобной переменной во многом похож на создание таблицы:
DECLARE @табличная_переменная TABLE (столбец_1 тип_данных [атрибуты_столбца], столбец_2 тип_данных [атрибуты_столбца] ....) [атрибуты_таблицы]
Например:
DECLARE @ABrends TABLE (ProductId INT, ProductName NVARCHAR(20))
В данном случае переменная @ABrends будет содержать два столбца.
В дальнейшем мы сможем работать с этой переменной как с обычной таблицей, то есть добавлять в нее данные, изменять, удалять и извлекать их:
DECLARE @ABrends TABLE (ProductId INT, ProductName NVARCHAR(20)) INSERT INTO @ABrends VALUES(1, 'iPhone 8'), (2, 'Samsumg Galaxy S8') SELECT * FROM @ABrends
Однако следует учитывать, что такие переменные не полностью эквивалентны таблицам. Они живут в пределах одного пакета, после завершения работы которого они удаляются. То есть они носят временный характер, и физически их данные нигде не хранятся на жестком диске.