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

Изменение триггеров

Изменение существующих триггеров в базе данных осуществляется командой ALTER TRIGGER.

ALTER TRIGGER trigger_name

ON { table | view }

[ WITH [ ENCRYPTION ] [ EXECUTE AS Clause ] ]

{ FOR | AFTER | INSTEAD OF }

{ [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }

AS { sql_statement [ ; ] [ ,...n ] }

Параметры команды ALTER TRIGGER идентичны параметрам команды CREATE TRIGGER.

Если триггер был создан с опцией шифрования текста инструкции CREATE TRIGGER (WITH ENCRYPTION), при изменении триггера, если требуется сохранить текст инструкции в зашифрованном состоянии, должна быть также указана опция WITH ENCRYPTION.

В следующем примере изменяется триггер, созданный ранее:

ALTER TRIGGER LowCredit ON PurchaseOrderHeader

AFTER INSERT

AS

DECLARE @creditrating tinyint,

@vendorid int

SELECT @creditrating = v.CreditRating, @vendorid = p.VendorID

FROM Purchasing.PurchaseOrderHeader AS p

INNER JOIN inserted AS i

ON p.PurchaseOrderID = i.PurchaseOrderID

JOIN Purchasing.Vendor AS v

ON v.VendorID = i.VendorID

IF @creditrating = 10

BEGIN

RAISERROR ('Низкая кредитоспособность покупателя.', 16, 1)

ROLLBACK TRANSACTION

END

GO

Удаление триггеров

Удаление триггеров осуществляется командой DROP TRIGGER.

DROP TRIGGER trigger_name

trigger_name

Имя триггера.

В следующем примере удаляется триггер, созданный ранее:

DROP TRIGGER LowCredit

Лекция № 16 Представления Что такое представление?

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

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

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

На запросы данных посредством представлений не налагаются никакие ограничения; есть только несколько ограничений на изменение данных при помощи представлений.

На следующем рисунке показано представление, созданное на основе двух таблиц.

При выполнении запросов через представление компонент Database Engine проверяет, существуют ли все указанные в инструкции объекты базы данных, верны ли они в контексте инструкции и соответствуют ли инструкции модификации данных правилам обеспечения целостности данных. Если проверка завершается ошибкой, возвращается сообщение об ошибке. При успешной проверке операция преобразуется в операцию над базовой таблицей или таблицами.

Если представление зависит от удаленной таблицы или представления, компонент Database Engine в ответ на попытку использования представления возвращает сообщение об ошибке. Если создана новая таблица или представление, а структура таблицы не изменилась по сравнению с предыдущей базовой таблицей для замены удаленной, то представление можно использовать снова. Если из базовой таблицы были удалены столбцы, используемые в представлении, представление необходимо удалить и создать заново.

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