Просмотрщик не может ссылаться на временные таблицы.
Просмотрщик не может ссылаться более чем на 1024 колонки.
Нельзя комбинировать с другими Transact-SQL операторами в batch (пачку, партию).
Следующий пример просмотрщика, который рассчитывает колонку Subtotal:
USE Northwind
GO
CREATE VIEW dbo.OrderSubtotalView (OrderID, Subtotal)
AS
SELECT OD.OrderID,
SUM(CONVERT(money,(OD.UnitPrice*Quantity*(1-Discount)/100))*100)
FROM [Order Details] OD
GROUP BY OD.OrderID
GO
Пример вызова:
SELECT * FROM dbo.OrderSubtotalView
Результат работы:
OrderID Subtotal
----------- ---------------------
10248 440.0000
10249 1863.4000
11075 498.1000
11076 792.7500
11077 1255.7200
(830 row(s) affected)
Вы часто будете создавать просмотрщики способа для предоставления информации из двух или более таблиц в одном централизованном хранилище.
В следующем примере создаётся просмотрщик двух таблиц:
USE Northwind
GO
CREATE VIEW dbo.ShipStatusView
AS
SELECT OrderID, ShippedDate, ContactName
FROM Customers c INNER JOIN Orders o
ON c.CustomerID = o.CustomerID
WHERE RequiredDate < ShippedDate
GO
Пример вызова просмотрщика:
SELECT * FROM dbo.ShipStatusView
Результат работы:
OrderID ShippedDate ContactName
--------- -----------------------------------------10264 1996-08-23 00:00:00.000 Maria Larsson
10271 1996-08-30 00:00:00.000 Art Braunschweiger
10280 1996-09-12 00:00:00.000 Christina Berglund
10302 1996-10-09 00:00:00.000 Pascale Cartrain
(37 row(s) affected)
Иногда вам моет понадобиться изменение просмотрщика. Для этого вы можете удалить его и создать снова (при этом теряются все разрешения) или воспользоваться оператором ALTER VIEW.
Оператор ALTER VIEW изменяет объявление просмотрщика, включая индексированные просмотрщики, без затрагивания встроенных процедур или триггеров. Это позволяет вам сохранить разрешения для просмотрщика. Если вы удалите просмотрщик и создадите его заново, вы потеряете все разрешения.
Синтаксис:
ALTER VIEW [ < database_name > . ] [ < owner > . ]
view_name [ ( column [ ,...n ] ) ]
[ WITH < view_attribute > [ ,...n ] ]
AS
select_statement
[ WITH CHECK OPTION ]
Пример
Следующий пример изменяет EmploeeView для добавления колонки Extension.
USE Northwind
GO
ALTER VIEW dbo.EmployeeView
AS
SELECT lastName, FirstName, Extension
FROM Employees
GO
Пример вызова:
SELECT * FROM dbo.EmployeeView
Результат:
lastName FirstName Extension
-------------------- ---------- ---------
Davolio Nancy 5467
Fuller Andrew 3457
Leverling Janet 3355
...
(9 row(s) affected)
Если вам долгое время не нужен будет просмотрщик, вы можете удалить его с помощью оператора DROP VIEW.
Сервер SQL позволяет вам владеть объектом для контролирования пользователей, которые авторизованы для доступа к ним.
Объявление просмотрщика зависит от основного объекта (просмотрщика или таблицы). Эта зависимость может быть воспринята как наследственная связь. Если вы владеете просмотрщиком, вы также владеете основным объектом. Если объект используется, то разрешение назначается только просмотрщику.
Для предотвращения разрыва цепочек наследования, владельцем всех просмотрщиков должен быть dbo. Когда объект используется, разрешения назначаются каждому зависимому объекту с различными владельцами.
Таня владеет view2. С помощью следующей команды, она может назначить разрешения для Миши:
GRANT select ON view2 TO Misha
Однако, view2 зависит от объекта view1, владельцем которого является Женя. Разрешения назначены каждому зависимому объекту с разными владельцами. Миша может выполнить просмотрщик, используя следующую команду:
SELECT * FROM tanya.view2
Если Женя дал Мише разрешение на вызов view1, то Миша сможет выполнить этот запрос.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.