Krishna Veni Ответов: 1

Почему сложные представления в SQL не всегда можно обновить.в чем же причина


виды бывают двух типов
1.простые представления
2.комплекс просмотров
простой вид всегда обновляемый
сложный вид не всегда поддается обновлению.


почему? в чем же причина

Что я уже пробовал:

виды бывают двух типов
1.простые представления
2.комплекс просмотров
простой вид всегда обновляемый
сложный вид не всегда поддается обновлению.

1 Ответов

Рейтинг:
0

Richard Deeming

Вы можете изменять данные базовой таблицы с помощью представления, если выполняются следующие условия:

* Любые изменения, включая инструкции UPDATE, INSERT и DELETE, должны ссылаться на столбцы только из одной базовой таблицы.

* Столбцы, изменяемые в представлении, должны непосредственно ссылаться на базовые данные в столбцах таблицы. Столбцы не могут быть получены каким-либо другим способом, например следующим:

* Агрегатную функцию: среднее, количество, сумма, мин, макс, группировка, СТАНДОТКЛОНА, СТАНДОТКЛОНП, дисп и ДИСПР.

* Вычисление. Столбец не может быть вычислен из выражения, которое использует другие столбцы. Столбцы, сформированные с помощью операторов set UNION, UNION ALL, CROSSJOIN, EXCEPT и INTERSECT, составляют вычисление и также не могут быть обновлены.

* Изменяемые столбцы не зависят от предложений GROUP BY, HAVING или DISTINCT.

* TOP нигде не используется в select_statement представления вместе с предложением WITH CHECK OPTION.

Предыдущие ограничения применяются к любым подзапросам в предложении FROM представления так же, как и к самому представлению. Как правило, компонент Database Engine должен иметь возможность однозначно отслеживать изменения от определения представления до одной базовой таблицы. Для получения дополнительной информации см. Изменение данных с помощью представления[^].