На самом деле это не временные таблицы, вы создаете реальные объекты таблиц. Если хранимая процедура где-то не работает, таблицы не будут удалены. Лучше придерживаться табличных переменных:
DECLARE @tableName TABLE (
id int, ... )
и используйте @tableName
как таблицу (что это такое). Таким образом, все будет привязано к локальной области действия хранимой процедуры.
Недостатком табличных переменных над временными таблицами является отсутствие кластеризованных индексов, и вы не можете ALTER
табличных переменных.