Как создать хранимую процедуру для копирования данных из запроса во временную таблицу? - PullRequest
0 голосов
/ 13 января 2020

Мне нужно вставить данные во временную таблицу из существующей таблицы / запроса. Следующее приводит к ошибке, описанной ниже.

CREATE TABLE SPTemporary
AS
BEGIN
    SELECT * into #temppT
        FROM SampleTable
END

Выдает эту ошибку:

Сообщение 156, Уровень 15, Состояние 1, Строка 3
Неверный синтаксис рядом с ключевым словом ' начало ".

Ответы [ 3 ]

0 голосов
/ 13 января 2020

Я думаю, что синтаксис неправильный, должно быть так:

create table SPTemporay
as
select * from SampleTable

Надеюсь, это поможет.

0 голосов
/ 13 января 2020

Один метод:

select st.*
into SPTemporay
from SampleTable st

Один select может поместить данные только в одну таблицу. Неясно, какой вы действительно хотите SPTemporary или #temppT. Вы можете повторить select, если вам действительно нужны одни и те же данные в двух таблицах.

РЕДАКТИРОВАТЬ:

Если вы хотите хранимую процедуру, вы можете сделать:

create procedure SPTemporay
as begin
    select *
    into #temppT
    from SampleTable
end;

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

0 голосов
/ 13 января 2020

Исправьте синтаксис, используйте procedure вместо table:

create procedure SPTemporay
as
begin
select * into #temppT
from SampleTable
end

Однако, если вам нужна только копия данных, достаточно только подзапроса:

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