Создание и управление индексами. Создание и управление встроенными процедурами. Оптимизация производительности запросов. Управление транзакциями и блокировками, страница 9

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

*  Поднабор строк или колонок базовой таблицы;

*  Объединение двух или более таблиц;

*  Связь двух или более таблиц;

*  Суммарная статистика для базовой таблицы;

*  Набор других просмотрщиков, или комбинация нескольких просмотрщиков и базовых таблиц.

Пример

Следующий пример создаёт просмотрщик EmployeeView в базе данных Northwind. Просмотрщик отображает две колонки таблицы Employees:

USE Northwind

GO

CREATE VIEW dbo.EmployeeView

AS

SELECT LastName, FirstName

FROM Employees

GO

Пример вызова просмотрщика:

SELECT *

FROM EmployeeView

Результат работы вызова просмотрщика:

LastName             FirstName 

-------------------- ----------

Davolio              Nancy

Fuller               Andrew

Leverling            Janet

Peacock              Margaret

Buchanan             Steven

Suyama               Michael

King                 Robert

Callahan             Laura

Dodsworth            Anne

(9 row(s) affected)

Преимущества просмотрщика

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

Просмотрщик создаёт контролируемое окружение, которое позволяет сделать доступ к нужным данным, а ненужные отключить. Данные, которые не должны отображаться по каким либо причинам могут быть спрятаны с помощью просмотрщика.

Просмотрщики позволяют вам хранить результат комплексного запроса. Другие запросы могут использовать этот суммирующий результат.

8.2 Объявление просмотрщика

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

Создание просмотрщика

Когда вы создаёте просмотрщик, SQL Server проверяет существование объектов, на которые ссылаются в объявлении просмотрщика. Ваше имя просмотрщика должно соответствовать правилам именования идентификаторов. Указание владельца просмотрщика не обязательно. Вы должны именовать просмотрщики так, чтобы их имена отличались от именования таблиц, и их можно было выделить среди других объектов.

Синтаксис:

CREATE VIEW [ < database_name > . ] [ < owner > . ]

view_name [ ( column [ ,...n ] ) ]

[ WITH < view_attribute > [ ,...n ] ]

AS

select_statement

[ WITH CHECK OPTION ]

Для выполнения оператора CREATE VIEW, вы должны иметь соответствующие права, например, быть владельцем базы данных. Вы также должны иметь права на выполнение оператора SELECT всех таблиц, используемых в просмотрщике.

Чтобы избежать ситуации, когда владельцем просмотрщика является один человек, а владельцем таблиц другой, всеми объектами должен владеть dbo. Всегда указывайте имя dbo при создании объектов.

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

*  Какая-нибудь из колонок просмотрщика получается из арифметических расчётов, встроенных функций или ограничений;

*  Какая-нибудь из колонок в таблице, которая объединена, разделяет некоторые имена.

Прежде чем создавать просмотрщик, вы должны протестировать SELECT запрос, чтобы убедиться, что он возвращает правильный набор. После этого, проверьте результат созданный просмотрщиком.

Когда вы создаёте просмотрщик, примите во внимание следующие ограничения:

*  Нельзя использовать опции COMPUTE или COMPUTE BY. Нельзя использовать ключевое слово INTO.

*  Можно использовать оператор ORDER BY только если используется ключевое слово TOP.