Вы также можете рассмотреть табличные переменные, жизненный цикл которых полностью для вас управляется.
DECLARE @MyTable TABLE (MyPK INT IDENTITY, MyName VARCHAR(100))
INSERT INTO @MyTable ( MyName ) VALUES ( 'Icarus' )
INSERT INTO @MyTable ( MyName ) VALUES ( 'Daedalus' )
SELECT * FROM @MyTable
Я почти всегда использую этот подход, но у него есть недостатки. В частности, вы можете использовать только те индексы, которые вы можете объявить в конструкции TABLE (), по сути это означает, что вы ограничены только первичным ключом - не используйте ALTER TABLE.