
- •Лабораторная работа № 3 Использование диаграмм для графического представления структуры базы данных
- •Теоретическое обоснование
- •Методика и порядок выполнения работы Методика и порядок выполнения задания 1
- •Методика и порядок выполнения задания 2
- •Содержание отчета и его форма
- •Методика и порядок выполнения работы
- •Select ...
- •Методика и порядок выполнения работы
- •Контрольные вопросы
- •Лабораторная работа № 7 Использование ограничений в sql – совместимых базах данных
- •Теоретическое обоснование
- •Контрольные вопросы
- •Лабораторная работа № 8 Хранимые процедуры в sql Server
- •Теоретическое обоснование
- •Задания к лабораторной работе № 7
- •Контрольные вопросы
- •Лабораторная работа № 9 Триггеры в sql Server
- •Использование триггеров
- •Срабатывание триггеров
- •Создание триггеров
- •Удаление триггеров
- •Таблицы deleted и inserted
- •Просмотр таблиц deleted и inserted
- •Вставка и удаление нескольких записей
- •Триггер вставки
- •Условный триггер вставки
- •Триггер обновления
- •Задание к лабораторной работе № 9
- •Методика и порядок выполнения работы Методика и порядок выполнения задания 1
- •Методика и порядок выполнения задания 2
- •Содержание отчета и его форма
- •Контрольные вопросы и защита работы
- •Лабораторная работа № 11
- •Обеспечение безопасности пользователей в sql Server
- •Цель и содержание:изучить основные приемы администрирования баз данных вSqlServer, рассмотреть возможность добавления новых пользователей в систему и разграничения их полномочий.
- •Теоретическое обоснование
- •Методика и порядок выполнения работы Методика и порядок выполнения задания 1
- •Методика и порядок выполнения задания 2
- •Методика и порядок выполнения задания 3
- •Содержание отчета и его форма
- •Методика и порядок выполнения работы Методика и порядок выполнения задания 1
- •Методика и порядок выполнения задания 2
- •Методика и порядок выполнения задания 3
- •Содержание отчета и его форма
- •Контрольные вопросы
- •Лабораторная работа № 14 Организация обмена данными. Взаимодействие sql-сервера с Word и Excel
- •Контрольные вопросы
- •Лабораторная работа № 15 Организация обмена данными. Взаимодействие sql-сервера и локальных баз данных Access и FoxPro
- •Взаимодействие sql-сервера и Visual FoxPro
- •Контрольные вопросы
Создание триггеров
Таблица может содержать триггеры трех типов – вставки, обновления или удаления (или любую комбинацию этих трех типов). Количество триггеров в таблице теперь не ограничивается.
Для создания триггера нужно выбрать в контекстном меню таблицы All tasks Manage Triggers…
Команда создания триггера имеет следующий синтаксис:
CREATE TRIGGER имя_триггера ON имя_таблицы
[WITH ENCRYPTION]
FOR {INSERT | UPDATE | DELETE} [,…]
[WITH APPAND]
[NOT FOR REPLICATION]
AS
[команды SQL]
[RETURN]
Синтаксические компоненты имеют следующий смысл:
Имя_триггера — определяет имя объекта с необязательным включением имени владельца (например, mytrigger или dbo.mytrigger).
Имя_таблицы — определяет имя таблицы, для которой срабатывает триггер. Обратите внимание, что таблица может быть лишь одна.
INSERT | UPDATE | DELETE — модификация данных, приводящая к срабатыванию триггера. При создании триггера можно задать одну, две или три операции. В случае выбора нескольких операций их следует разделить запятыми (INSERT, UPDATE, DELETE).
WITH APPAND — триггер добавляется в список триггеров, срабатывающих для указанного действия (действий). SQL Server можно настроить так, что добавление будет происходить автоматически Если SQL Server не настроен таким образом, создание триггера приводит к удалению существующего триггера для данного действия (действий).
NOT FOR REPLICATION — означает, что триггер не выполняется в процессе репликации.
Следующий фрагмент создает триггер, который выводит сообщение при каждой вставке записи в таблицу titles:
CREATE TRIGGER titles_trigger ON titles
FOR INSERT
AS
print 'Record inserted !!!'
RETURN
При создании триггеров необходимо учитывать некоторые второстепенные обстоятельства:
Если вы задаете владельца триггера, также необходимо задать владельца таблицы (особенность синтаксиса языка).
Хотя триггеры во многих отношениях похожи на хранимые процедуры, они не получают параметров при вызове и не могут явно вызываться или выполняться из программы.
Команда CREATE TRIGGER должна быть первой командой в пакете.
Триггеры не могут создаваться для представлений. Они действуй лишь в базовых таблицах. Тем не менее, можно создавать представления для таблиц, содержащих триггеры.
Триггеры не срабатывают при выполнении команды TRUNCATE TABLE. Команда TRUNCATE TABLE не регистрируется в журнале, а триггеру необходим доступ к информации журнала.
Команда WRITETEXT не приводит к срабатыванию триггеров. Эта команда не регистрируется в журнале.
Чтобы создать триггер, необходимо либо быть владельцем объекта, либо обладать ролью DB_OWNER или BD_DDLADMIN.
В триггерах запрещены следующие команды SQL: любые команды CREATE; любые команды DROP; ALTER TABLE/ DATABASE; DENY; GRANT; REVOKE; SELECT INTO, TRUNCATE TABLE; UPDATE STATISTIC; RECONFIGURE; LOAD/ RESTORE DATABASE/ TRANSACTION.
Удаление триггеров
Триггеры удаляются командой DROP TRIGGER, имеющей следующий синтаксис:
DROP TRIGGER имя_триггера [, имя_триггера,[,...] ]
Команда удаляет триггер с заданным именем. При замене триггеров команда DROP TRIGGER не нужна. Чтобы заменить существующий триггер, достаточно не указывать ключевые слова WITH APPAND при создании нового триггера.
Существуют особые представления журнала — таблицы inserted и deleted которые открывают доступ к образам, данным до и после модификации.