вставить возвращаемые данные из SP в временную таблицу - PullRequest
0 голосов
/ 27 марта 2012

У меня есть сохраненный процесс, SP1, который выполняется и выбирает одну таблицу. Теперь мне нужно вставить эти данные в другую таблицу. Я не хочу дублировать код, поэтому я подумал о вставке данных, возвращаемых SP1, во временную таблицу, чтобы я мог выполнить некоторую обработку и сохранить ее.

Я пытался INSERT INTO #tmp; exec dbo.Sp1;, но выдает ошибку: 1004 *. Есть ли способ, которым я могу создать эту таблицу динамически? Есть ли лучшее решение этой проблемы?

Ответы [ 2 ]

1 голос
/ 27 марта 2012

Временная таблица должна существовать, прежде чем вы сможете использовать вставку в exec.

Это не такой недостаток, как сначала кажется, что любые изменения в наборе результатов процедуры, скорее всего, будут тормозить ваш код.

0 голосов
/ 27 марта 2012

сначала запустите это:

create proc MySelect
as
begin
  select 1 as myColumn1, 2 as mycolumn2
end

, а затем это:

create table #tmp(
col_1 int,
col_2 int)

insert into #tmp exec MySelect

select * from #tmp
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...