“выберите * из таблицы” по сравнению с “избранной колой, colB, и т.д. от таблицы” интересное поведение в SQL Server 2005

14
задан Community 23 May 2017 в 12:01
поделиться

2 ответа

sp_refreshview для фиксации представления или использования С SCHEMABINDING в определении представления

, Если представление не создается с пунктом SCHEMABINDING sp_refreshview должен быть выполнен, когда изменения внесены в объекты, лежащие в основе представления, которые влияют на определение представления. Иначе представление могло бы привести к неожиданным результатам, когда оно запрашивается.

16
ответ дан 1 December 2019 в 13:34
поделиться

Это - довольно стандартное поведение для представлений под любой RDBMS, не только MSSQL и причина, почему использование представлений, включающих "выбор * от", нужно рассматривать с осторожностью.

Механизм SQL скомпилирует каждое представление - который является в основном лексикографическими шагами / шагами парсинга, и сохраните результат этого. Если Вы следовательно изменяете базовые таблицы, явное перекомпилировало, всегда требуется, если база данных не имеет некоторый метод меток представления, чтобы быть проверенной при таких обстоятельствах.

проблема может также относиться к хранимым процедурам и подобным объектам базы данных также.

2
ответ дан 1 December 2019 в 13:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: