powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / CREATE VIEW умничает
4 сообщений из 4, страница 1 из 1
CREATE VIEW умничает
    #33280414
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создаю 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
CREATE VIEW умничает
    #33280556
vooo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего удивительного в этом нет
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
CREATE VIEW умничает
    #33282549
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой, сколько мы бились с этой фичей ...
В ASE там что-то переборщили, дело в том, что * с какой-то версии стала расшиваться динамически, без пересоздания процедуры (вьюхи). А в доках сказано (с давних пор), что если у вас в процедуре стоит *, то пока не пересоздашь процедуру, новые поля из таблицы не появятся.
Ну а раз написано пером -- не вырубишь и топором, они решили, что лучше, чтобы все соотв. документации, во время компиляции подставлять вместо * все названия полей.

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


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