Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Изменение просмотра.




<изменение_просмотра>::= 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.

 

Различия между модифицируемыми представлениями и представлениями, предназначенными только для чтения, не случайны. Цели, для которых их используют, различны.

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

Представления в режиме <только для чтения> позволяют получать и форматировать данные более рационально. Они создают целый арсенал сложных запросов, которые можно выполнить и повторить снова, сохраняя полученную информацию. Результаты этих запросов могут затем использоваться в других запросах, что позволит избежать сложных предикатов и снизить вероятность ошибочных действий.

 

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...