Создайте временную таблицу в той же процедуре, чтобы она оставалась в области видимости, а затем используйте динамический SQL для ее изменения.
create table #temp2 (id int)
DECLARE @SQL NVARCHAR(1000) ='ALTER TABLE #temp2 ADD test1 int NOT NULL, test2 int NOT NULL'
EXEC sp_executesql @SQL
insert #temp2 values(1,2,3)
SELECT * FROM #temp2
DROP TABLE #temp2