Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по курсу ИСиТ.docx
Скачиваний:
6
Добавлен:
07.02.2024
Размер:
1.07 Mб
Скачать

Источники информации о представлениях Обозреватель объектов sql Server Management Studio

Представления каталога

Представление каталога

Отображение сведений о

sys.views

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

sys.columns

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

sys.sql_expression_dependencies

Информация о зависимостях между объектами следующих типов:

  • привязанные к схеме сущности;

  • сущности без привязки к схеме;

  • зависимости на уровне столбцов в сущностях, привязанных к схеме.

sys.sql_modules

Содержит текст инструкции SELECT всех представлений

Функции динамического управления

Функция

Отображение сведений о

sys.dm_sql_referenced_entities

Информация об объектах следующих типов, упоминаемых заданной сущностью:

  • сущности, привязанные к схеме;

  • сущности без привязки к схеме;

  • зависимости уровня столбца, как связанные, так и не связанные со схемами;

  • определяемые пользователем типы;

  • коллекции XML-схем;

  • функции секционирования.

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

Также как и таблица, представление может включать не более 1 024 столбцов.

Создание представления осуществляется при помощи команды CREATE VIEW:

CREATE VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ]

[ WITH [ ENCRYPTION ] [ SCHEMABINDING ] ]

AS select_statement

[ WITH CHECK OPTION ]

schema_name

Имя схемы, которой принадлежит представление.

view_name

Имя представления. Имена представлений должны соответствовать требованиям, предъявляемым к идентификаторам. Указывать имя владельца представления не обязательно.

column

Имя, которое будет иметь столбец в представлении. Имя столбца требуется только в тех случаях, когда столбец формируется на основе арифметического выражения, функции или константы, если два или более столбцов могут по иной причине получить одинаковые имена (как правило, в результате соединения) или если столбцу представления назначается имя, отличное от имени столбца, от которого он произведен. Назначать столбцам имена можно также в инструкции SELECT.

Если аргумент column не указан, столбцам представления назначаются такие же имена, которые имеют столбцы в инструкции SELECT.

AS

Определяет действия, которые должны быть выполнены в представлении.

select_statement

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

В аргументе select_statement можно использовать функции и множественные инструкции SELECT, разделенные оператором UNION или UNION ALL.

CHECK OPTION

Обеспечивает соответствие всех выполняемых для представления инструкций модификации данных критериям, заданным при помощи аргумента select_statement. Если строка изменяется посредством представления, предложение WITH CHECK OPTION гарантирует, что после фиксации изменений доступ к данным из представления сохранится, т.е. строка не может быть изменена таким образом, что перестанет подпадать под критерий выборки. Любые обновления, произведенные непосредственно в базовых таблицах представления, не проверяются в контексте представления — даже в том случае, если указано предложение CHECK OPTION.

ENCRYPTION

Затемняет текст инструкции CREATE VIEW хранящийся в базе данных. Непривилегированные пользователи не смогут получить исходный текст триггера.

SCHEMABINDING

Привязывает представление к схеме базовой таблицы или таблиц. Если аргумент SCHEMABINDING указан, нельзя изменить базовую таблицу или таблицы таким способом, который может повлиять на определение представления. Сначала нужно изменить или удалить само представление для сброса зависимостей от таблицы, которую требуется изменить. При использовании аргумента SCHEMABINDING инструкция select_statement должна включать двухкомпонентные (schema.object) имена таблиц, представлений или пользовательских функций, упоминаемых в предложении. Все указанные в инструкции объекты должны находиться в одной базе данных.

Как было рассмотрено в начале модуля, если представление зависит от удаленной таблицы или представления, компонент Database Engine в ответ на попытку использования представления возвращает сообщение об ошибке. Также ошибка произойдет при попытке использования представления, если из базовой таблицы были удалены столбцы, используемые в представлении. SQL Server не препятствует такому изменению или удалению таблиц, участвующих в представлении, и ошибка будет обнаружена только при обращении к представлению. Указание аргумента SCHEMABINDING позволяет избежать подобных ошибок, поскольку представления или таблицы, входящие в представление, созданное при помощи предложения SCHEMABINDING, не могут быть удалены, пока это представление не будет удалено или изменено таким образом, чтобы оно более не было привязано к схеме. В противном случае компонент Database Engine выдаст ошибку. Кроме того, выполнение инструкций ALTER TABLE для таблиц, которые входят в представления, привязанные к схемам, завершается ошибкой, если эти инструкции влияют на определение представления.

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

Пример:

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

CREATE VIEW EmployeeHireDate

AS

SELECT p.FirstName, p.LastName, e.HireDate

FROM HumanResources.Employee AS e JOIN Person.Person AS p

ON e.BusinessEntityID = p.BusinessEntityID ;

Соседние файлы в предмете Информатика