Изменение просмотра.
<изменение_просмотра>::= ALTER VIEW [ schema_name. ] view_name [ ( column [,... n ] ) ] [ WITH <view_attribute> [,...n ] ] AS select_statement [ WITH CHECK OPTION ] [; ]
Пример: создается представление EmployeeHireDate, содержащее фамилии и имена всех сотрудников, а также даты их приема на работу. USE AdventureWorks; GO CREATE VIEW HumanResources.EmployeeHireDate AS SELECT c.FirstName, c.LastName, e.HireDate FROM HumanResources.Employee AS e JOIN Person.Contact AS c ON e.ContactID = c.ContactID; GO
Для замены представления, чтобы из базы данных извлекались сведения только о сотрудниках, принятых на работу до определенной даты используется инструкция: ALTER VIEW HumanResources.EmployeeHireDate AS SELECT c.FirstName, c.LastName, e.HireDate FROM HumanResources.Employee AS e JOIN Person.Contact AS c ON e.ContactID = c.ContactID WHERE HireDate < CONVERT(DATETIME,'19980101',101);
Если не использовать инструкцию ALTER VIEW, а удалить представление и создать его заново, нужно будет повторно выполнить инструкцию GRANT и любые другие инструкции, работающие с разрешениями данного представления.
Не все представления в SQL могут быть модифицированы. Модифицируемое представление определяется следующими критериями: · основывается только на одной базовой таблице; · содержит первичный ключ этой таблицы; · не содержит DISTINCT в своем определении; · не использует GROUP BY или HAVING в своем определении; · не применяет в своем определении подзапросы; · не использует константы или выражения значений среди выбранных полей вывода; · в просмотр должен быть включен каждый столбец таблицы, имеющий атрибут NOT NULL; · оператор SELECT просмотра не использует агрегирующие (итоговые) функции, соединения таблиц, хранимые процедуры и функции, определенные пользователем; · основывается на одиночном запросе, поэтому объединение UNION не разрешено. Если просмотр удовлетворяет этим условиям, к нему могут применяться операторы INSERT, UPDATE, DELETE.
Различия между модифицируемыми представлениями и представлениями, предназначенными только для чтения, не случайны. Цели, для которых их используют, различны. С модифицируемыми представлениями в основном обходятся точно так же, как и с базовыми таблицами. Фактически, пользователи не могут даже осознать, является ли объект, который они запрашивают, базовой таблицей или представлением, т.е. прежде всего это средство защиты для сокрытия конфиденциальных или не относящихся к потребностям данного пользователя частей таблицы. Представления в режиме <только для чтения> позволяют получать и форматировать данные более рационально. Они создают целый арсенал сложных запросов, которые можно выполнить и повторить снова, сохраняя полученную информацию. Результаты этих запросов могут затем использоваться в других запросах, что позволит избежать сложных предикатов и снизить вероятность ошибочных действий.
Читайте также: DML. Изменение данных Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|