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.