CustomerName, CreditLine




Создание представлений

Создание представлений

Представление – это обычный запрос select, имеющий имя и хранящийся в SQL Server

Формат команды создания:

CREATE VIEW имя_представления

WITH атрибуты

AS инструкция SELECT

WITH CHECK OPTION

 

Возможные атрибуты:

ENCRIPTION – шифрование описания представления при сохранении. SCHEMABINDING – запрет на удаление объектов, используемых в представлений.

VIEW_METADATA – возвращает метаданные о представлении.

WITH CHECK OPTION – служит для создания обновляемых представлений.

 

Для инструкции select существуют следующие ограничения:

Ключевое слово INTO;

Предложение OPTION;

Ссылки на временные таблицы и табличные переменные.

 

Цепочки владения

Поскольку представление ссылается на другие объекты, возможны проблемы с правами доступа

V_CustomerAddress владелец UserA

Таблица Customer владелец UserB

Таблица CustomerAddress владелец UserC.

Допустим, пользователь UserA предоставляет пользователю UserD разрешение select на представление V_CustomerAddress, но этого мало – пользователю UserD должны еще предоставить разрешение на таблицы, используемые в представлении.

Упражнение: создание представлений

Бизнес - задача: создать представление, которое возвращает информацию о клиентах проживающих в городе Newport Hills.

Запустите SQL Server Management Studio из меню ПУСК.

Выполните подключение к серверу, нажав кнопку Connect.

Создайте новый запрос, нажав

Измените контекст на базу данных AdventureWorks

Создайте представление:

Create view clients as

select c.FirstName+' '+c.LastName as 'Client name' from

Person.Contact c,

HumanResources.Employee e,

HumanResources.EmployeeAddress ea,

Person.Address p

where e.ContactID=c.ContactID and e.EmployeeID=ea.EmployeeID and ea.AddressID=p.AddressID and p.City='Newport Hills';

Посмотрите результаты:

select * from clients;

Использование представлений для модификации данных

Создание обновляемых представлений

Представления, поддерживающие модификацию данных, называют обновляемыми представлениями.

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

Упражнение: создание обновляемого представления

Запустите SQL Server Management Studio из меню ПУСК.

Выполните подключение к серверу, нажав кнопку Connect.

Создайте новый запрос, нажав

Измените текущую базу данных на master

Создайте представление: create view dbo.v_Customer as select * from Customer where CreditLine>1000 with check option;

 

Вставьте строчку данных в таблицу: insert into Customer

(

CustomerName, CreditLine

)

Values

(

'1', 1000

)

Посмотрите результаты: select * from Customer select * from dbo.v_Customer

 

Вставьте строчку данных в представление:



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-11-11 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: