Вы можете сохранить данные в Глобальной временной таблице (##) с помощью Select * в подходе, и чтобы сохранить в таблице #temp, вы должны сначала создать таблицу, о которой я знаю при использовании динамического sql. Но вы, безусловно, можете это сделать.во время выполнения, но все же вам может потребоваться некоторая физическая таблица для доступа к ней.
create table testtmp (id int, namen varchar(15))
--inserting the data into physical table
insert into testtmp (id, namen)
select 1 as ID, 'XYZ' as namen union all
select 2 as ID, 'ABC' as namen union all
select 3 as ID, 'DIG' as namen
create table #temp (ID int)
declare @sql nvarchar(max) = 'select ID from testtmp'
insert into #temp exec sp_executesql @sql
select * from #temp
Gives you this output:
ID
1
2
3
С глобальной временной таблицей вы можете сделать это легко, и вам не нужно создавать никаких таблиц, вы можете указать имена столбцов, если хотите.
declare @sql nvarchar(max) = 'select * into ##Gloabltmptest from testtmp'
exec sp_executesql @sql
select * from ##Gloabltmptest
Вывод:
ID namen
1 XYZ
2 ABC
3 DIG
Также добавлена табличная переменная, аналогично таблицам #temp.
declare @table table (IDtab int, nametab varchar(15))
declare @sql nvarchar(max) = 'select * from testtmp'
insert into @table exec sp_executesql @sql
select * from @table