Aysha Patel Ответов: 2

Как сделать SELECT * в [временную таблицу] из [EXEC SQL1+SQL2+SQL3]? не из [таблицы] и без определения [временной таблицы]?


Привет Друзья,


Как мне это сделать SELECT * INTO [temp table] FROM [EXEC SQL1+SQL2+SQL3]? Нет FROM [Table] и без определения [temp table]?

Ниже приведен мой синтаксис: EXEC @SQL1+@SQL2+@SQL3

я хочу вставить этот результирующий набор во временную таблицу.

Пожалуйста, помогите мне.

Заранее спасибо.

Что я уже пробовал:

я пробовал следовать двум методам, но это не сработало.
1)
insert into #temptable exec(@SQL1+@SQL2+@SQL3)
select * from #temptable

2)
SELECT
  *
INTO
  #temptable
FROM
  OPENROWSET(
    'SQLNCLI',
    'Server=(local)\SQL2008;Trusted_Connection=yes;',
    'EXEC ' + @SQL1 + '+' + @SQL2 +',' +
)

mansi chaudhari

Не могли бы вы упомянуть, что содержится в @sql1,@sql2,@sql3?

Maciej Los

Совершенно непонятно!!!

2 Ответов

Рейтинг:
2

Sandip.Nascar

Вот работоспособный код...

--prepare table
create table t1(code nvarchar(10), name nvarchar(64));
go
insert into t1 values('001', 'Jon Doe');
insert into t1 values('002', 'Michael Doe');
go
--prepare stored procedure
create procedure getdata
as
begin
	--functional stuff
	select * from t1;
end


фактический код для выполнения sp и хранения во временной таблице

CREATE TABLE #temp
(
   code nvarchar(10),
   name nvarchar(64)
)

INSERT INTO #temp
Exec getdata


Рейтинг:
1

S.P.Tiwari

Попробуйте с приведенным ниже кодом

SELECT  *
INTO    #tempTable
FROM    OPENQUERY(YOURSERVERNAME, 'EXEC exec(@SQL1+@SQL2+@SQL3)')


для этого требуется дополнительное разрешение на sqlserver и форматирование строки запроса.
подсказка- [^]