Как добавить столбец во временную таблицу внутри хранимой процедуры?

У меня есть хранимая процедура, аналогичная приведенной ниже:

ALTER Proc   
BEGIN    
    if object()... drop... #temp_table

    select 
        a,
        b,
    INTO #temp_table
    From physical_table    

    if object()... drop... physical_table2

    select *
    into physical_table2
    From #temp_table    
END

Я хочу добавить дополнительный столбец во временную таблицу в хранимой процедуре

ПОДОБНО:

ALTER Proc    
BEGIN    
    select 
        a,
        b,
        C <-- NEW COLUMN ADDED
    INTO #temp_table
    From physical_table

    select *
    into physical_table2
    From #temp_table
END

Однако я получаю сообщение об ошибке «недопустимое имя столбца« C ».

Теперь это легко исправить... Я мог бы сначала выделить и запустить внутренний оператор хранимой процедуры, а затем выполнить оператор «Alter Proc», НО мне нужно передать сценарий ИТ-специалисту для его выполнения. Мне сказали создать еще один скрипт перед сохраненным скриптом proc, чтобы изменить временную таблицу и добавить этот столбец... но не знаю, как это сделать??


person SuperSQL    schedule 24.04.2020    source источник


Ответы (1)


Этот код:

select a, b, C <-- NEW COLUMN ADDED
INTO #temp_table
From physical_table

Предполагается, что C находится в физической таблице. Ошибка говорит о том, что это не так. Вы можете присвоить постоянное значение:

select a, b, 0 as C <-- NEW COLUMN ADDED
INTO #temp_table
From physical_table;
person Gordon Linoff    schedule 24.04.2020
comment
столбец, который нужно добавить, есть - person SuperSQL; 25.04.2020