Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / CREATE VIEW умничает / 4 сообщений из 4, страница 1 из 1
21.09.2005, 09:59
    #33280414
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CREATE VIEW умничает
Создаю VIEW:
Код: plaintext
1.
2.
3.
4.
5.
6.
create view SmthView
as
select *
from SmthTable
where
... 
В результате:
Sybase Central Java Edition
create view SmthView
as
select SmthTable.Field1, SmthTable.Field2, ... SmthTable.FieldN
from SmthTable
where
...

Соответственно, после:
Код: plaintext
1.
alter table add AnyMoreField ...
SmthView, из-за выше указанной "фичи"
, AnyMoreField не возвращает

Что делатЪ? Кто виноватЪ?

select @@version
Adaptive Server Enterprise/12.5.1/EBF 11428/P/NT (IX86)/OS 4.0/ase1251/1823/32-bit/OPT/Wed Sep 17 11:10:54 2003

_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
21.09.2005, 10:46
    #33280556
vooo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CREATE VIEW умничает
Ничего удивительного в этом нет
Sybooks :

If you define a view with a select * clause, and then alter the structure of its underlying tables by adding columns, the new columns do not appear. This is because the asterisk shorthand is interpreted and expanded when the view is first created. To see the new columns, drop the view and re-create it.
...
Рейтинг: 0 / 0
21.09.2005, 23:14
    #33282549
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CREATE VIEW умничает
Ой, сколько мы бились с этой фичей ...
В ASE там что-то переборщили, дело в том, что * с какой-то версии стала расшиваться динамически, без пересоздания процедуры (вьюхи). А в доках сказано (с давних пор), что если у вас в процедуре стоит *, то пока не пересоздашь процедуру, новые поля из таблицы не появятся.
Ну а раз написано пером -- не вырубишь и топором, они решили, что лучше, чтобы все соотв. документации, во время компиляции подставлять вместо * все названия полей.

На эту штуку есть trace-flag, отключающий это дело, который исправно и хорошо работает (наши базы долго работали в таком режиме, никаких проблем, кроме, конечно, ожидаемого эффекта , когда новые колонки появляются сразу в выводе процедур/вьюх).
Вот номер трейсфлага только не помню.
...
Рейтинг: 0 / 0
21.09.2005, 23:56
    #33282570
Zhora
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CREATE VIEW умничает
243
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / CREATE VIEW умничает / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]