Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Нужна ли перекомпиляция VIEWS после добавления полей в таблицу?  [new]
AlexV1
Member

Откуда: Новосибирск
Сообщений: 613
Помнится раньше, кажется еще до SQL Server 2000 была такая проблема:
после создания/удаления поля в/из таблицы или изменения порядка полей нужно было НЕ ЗАБЫВАТЬ перекомпилировать все VIEWS, в которых упоминается данная таблица, поскольку VIEWS запоминают в себе структуру используе-мых таблиц и, после изменения состава полей таблицы,VIEW может вести себя непредсказуемо, если в ней есть SELECT * FROM эта таблица, то есть без указания конкретных полей.

Сейчас SQL Server 2008 и этой проблемы не заметил, по крайней мере не могу воспроизвести.
Скажите кто сталкивался с этой проблемкой, существует ли она в SQL Server 2008 или уже давно устранили и перекомпиляция вьюх не требуется?
7 ноя 12, 12:09    [13431881]     Ответить | Цитировать Сообщить модератору
 Re: Нужна ли перекомпиляция VIEWS после добавления полей в таблицу?  [new]
Crimean
Member

Откуда:
Сообщений: 13147
при некоторых изменений метаданных нужно делать sp_refreshsqlmodule, даже если не используется "select *"
7 ноя 12, 12:11    [13431901]     Ответить | Цитировать Сообщить модератору
 Re: Нужна ли перекомпиляция VIEWS после добавления полей в таблицу?  [new]
dmitry stakanov
Member

Откуда:
Сообщений: 241
AlexV1
Помнится раньше, кажется еще до SQL Server 2000 была такая проблема:
после создания/удаления поля в/из таблицы или изменения порядка полей нужно было НЕ ЗАБЫВАТЬ перекомпилировать все VIEWS, в которых упоминается данная таблица, поскольку VIEWS запоминают в себе структуру используе-мых таблиц и, после изменения состава полей таблицы,VIEW может вести себя непредсказуемо, если в ней есть SELECT * FROM эта таблица, то есть без указания конкретных полей.

Сейчас SQL Server 2008 и этой проблемы не заметил, по крайней мере не могу воспроизвести.
Скажите кто сталкивался с этой проблемкой, существует ли она в SQL Server 2008 или уже давно устранили и перекомпиляция вьюх не требуется?


Необходимо обновлять метаданные, если были изменения в базовой таблице и Ваше представление не привязано к схеме.
Те представление не имеет предложения:
WITH SCHEMABINDING
7 ноя 12, 14:01    [13432950]     Ответить | Цитировать Сообщить модератору
 Re: Нужна ли перекомпиляция VIEWS после добавления полей в таблицу?  [new]
Crimean
Member

Откуда:
Сообщений: 13147
dmitry stakanov,

если представление было привязано - изменить схему как раз не даст :)
7 ноя 12, 14:10    [13433041]     Ответить | Цитировать Сообщить модератору
 Re: Нужна ли перекомпиляция VIEWS после добавления полей в таблицу?  [new]
dmitry stakanov
Member

Откуда:
Сообщений: 241
Crimean
dmitry stakanov,

если представление было привязано - изменить схему как раз не даст :)


не даст. но не всегда можно сделать привязку объекта к схеме.
7 ноя 12, 14:15    [13433072]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить