Гипотетически у меня есть две таблицы Employee и Locations. Additionaly у меня есть представление viewEmpLocation, который сделан путем присоединения к Сотруднику и Местоположениям.
Если я обновляю представление, будет данные в исходной таблице обновляться?
см. Использование представлений в Microsoft SQL Server
При изменении данных с помощью представления (то есть , используя операторы INSERT или UPDATE ) существуют определенные ограничения в зависимости от типа представления. Представления , которые обращаются к нескольким таблицам, могут только изменять одну из таблиц в представлении. Представления, которые используют функции, задают DISTINCT или используют GROUP BY { Предложение {1}} не может быть обновлено. Кроме того, вставка данных запрещена для следующих типов представлений:
* представления, имеющие столбцы с производными (т. Е. вычисленные) данные в списке SELECT * представления, которые не содержат все столбцы, определенные как NOT NULL из таблиц, из которых они были определены
Также можно вставить или {{ 1}} обновлять данные через представление, так что данные больше не доступны через это представление, если не была указана ОПЦИЯ WITH CHECK .
Да.
Данные "в" представлении не существуют независимо от таблиц, составляющих представление. По сути, представление - это сохраненный оператор SELECT, маскирующийся под таблицу. Данные хранятся в исходных таблицах и «собираются» в представление только тогда, когда вы хотите его просмотреть. Если представление является обновляемым (не все представления), обновления применяются к данным таблицы.
Вы можете использовать триггер в представлении для вставки / обновления / удаления реальных таблиц.
http://www.devarticles.com/c/a/SQL-Server/Using-Triggers-In-MS-SQL-Server/1/