Dmitry Lendel wrote:
Привет
Вот такой вопрос
Как сервер обрабатывает конструкцию внутри процедуры?
insert into Table1 from select * Table2

Суть проблемы
Table1 common table
Table2 временная таблица
Структура одинаковая

Это в процедуре
insert into Table1 from select * Table2

Дабавляем одно и тоже поле в Table1 и Table2

Запускаем процедуру, а новое поле не обновляется, пока не сделаем alter
процедуре
Я могу тест написать.
Просто стало интересно. Выходит, что при компиляции
insert into Table1 from select * Table2 сервер расскладывает поля?

Или это бага? Или я чего-то  не понимаю?

Я, конечно, насчёт 2.1 могу только ламерствовать, но в порядке ламерства могу предположить а) отстутствие коммита промеж альтером таблицы и выполненим процедуры б) наличие в кеше метаданных уже подготовленного к применению кода этой процедуры до выполнения альтера. Если справедливо а), то оно понятно, если б) то поможет не только перекомпиляция, но и рестарт сервера между альтером и выполнением процедуры.

--
Regards. Ded.

Ответить