рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Создание, программирование и управление триггерами

Создание, программирование и управление триггерами - раздел Программирование, Архитектура сервера MS SQL-Server 2000     Цель Работы– Изучение Назнач...

 

 

Цель работы– изучение назначения и типов триггеров, условий их активации, синтаксиса и семантики команд языка Transact – SQL для их создания, модификации, переименования, программирования и удаления, а также приобретение навыков их проектирования, кодирования и отладки с применением хранимых процедур для получения информации о триггерах базы данных.

 

Триггер SQL Server 2000 – это специальный тип хранимых процеду, которые запускаются сервером автоматически при выполнении тех или иных действий с данными таблицы. Триггеры рвзличаются по типу команд, на которые они реагируют:

INSERT TRIGGER – запускаются при попытке вставить данные с помощью команды

INSERT;

UPDATE TRIGGER – запускаются при попытке изменения данных с помощью команды

UPDATE;

authsmall TRIGGER – запускаются при попытке удаления данных с помощью команды

DELETE.

Парамнтры FOR, AFTER и INSTEAD OF, указываемые при создании триггера,

определяют его поведение следующим образом:

FOR – запуск триггера при выполнении заданной в этом списке команды; AFTER – запуск триггера после успешного выполнеиния команд списка; INSTEAD OF – триггеры вызывается вместо выполнения команд списка.

Можно определить несколько AFTER – триггеров для каждой операции INSERT, UPDATE и DELETE. По умолчаню все триггеры являются AFTER – триггерами. Триггеры нельзясоздавать для временных или системных таблиц. Команда создания триггера должна быть первой в пакете и применяться только к одной таблице. Ее формат следующий:

 

CREATE TRIGGER Имя триггера

ON {Имя таблицы\Имя представления}

[WITH ENCRYPTION] -- шифрование кода триггера;

{ {{FOR\AFTER\INSTEAD OF}


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

[WITE APPEND] -- только для версий 6.5 и ниже; [NOT FOR REPLICATION] -- не для репликации; AS sql_statement […n] -- тело триггера;

}

|

{{FOR\AFTER\INSTEAD OF}

{[INSERT] [,] [UPDATE]}

[WITE APPEND] -- только для версий 6.5 и ниже; [NOT FOR REPLICATION] -- не длярепликации;

AS {IF UPDATE (column) -- при изменении столбца; [{AND\OR}UPDATE (column) […n]]}-- тоже;

|

IF (COLUMNS_UPDATED() {bitwise_operator} Update_bitmask)

{comparison_operator}column_bitmask […n]

}

sql_statement […n] -- тело триггера.

}

}

 

Вторая альтернатива команды {IF UPDATE…} используется для детального анализа изменений содержимого колонок с помощью специальных функций, битовых масок, операторов побитовой обработки, оператор сравнения и логических операторов.

Команда ALTER TRIGGER позволяет изменить параметры и тело триггера. С помощью команды DROP TRIGGER можно удалть любой триггер базы данных. Переименовать триггер можно системной хранимой процедурой sp_rename, а получить информацию о триггере можно при помощи системных хранимых процедур sp_helptext и sp_helptrigger.

Внутри триггера допускается использование любых команд языка Transact – SQL с некоторыми ограничениями. Также допускается и вызов хранимых процедур, включая системные.

 

 

Задание 1.Создать таблицу authsmall из таблицы authors базы данных Pubs и для новой таблицы запрограммировать триггер auth_del, который будет выводить информацию о попытках удаления и количестве удаляемых строк, выполнив действия:

 

1. Создание таблицы authsmall c колонками au_id, au_fname, au_lname, phone и копирование в нее данных из таблицы authors:

 

SELECT au_id, au_fname, au_lname, phone

INTO authsmoll

FROM authors

PRINT ‘Содержимое таблицы authsmoll:’ SELECT * FROM authsmall

2. Создание и программирование триггера: CREATE TRIGGER auth_del

ON authsmall FOR DELETE AS

PRINT ‘Попытка удаления’ + STR (@@ POWCOUNT)+

‘строк в таблице authsmall’

PRINT ‘Пользователь’ + CURRENT_USER IF CURRENT_USER <> ‘dbo’

BEGIN


PRINT ‘Удаление запрещено’ ROLLBACK TRANSACTION END

ELSE

PRINT ‘Удаление разрешено’

 

3. Тестирование триггера :

 

DELETE FROM authsmall WHERE au_fname = ‘Johnson’ DELETE FROM authsmall WHERE 2*2=5

 

Задание 2.Создать триггер auth_upd для таблицы authsmall, построенный в первом задании, который будет разрешать изменение столбца au_id этой таблицы всем, кроме владельца dbo, выполнив следующие действия:

1. Создание и программирование триггера: CREATE TRIGGER auth_upd

ON authsmall

FOR UPDATE

AS

SET NOCOUNT ON -- не сообщать о завершении команд; PRINT ‘Попытка изменения данных в таблице authsmall’ IF (COLUMNS_UPDATE () &1)! = 0 -- 1-й столбец;

PRINT ‘Изменение столбца au_id’

IF (COLUMNS_UPDATE () &2)! = 0 -- 2-й столбец; PRINT ‘Изменение столбца au_fname’

IF (COLUMNS_UPDATE () &4)! = 0 -- 3-й столбец; PRINT ‘Изменение столбца au_lname’

IF UPDATE (Phone)

PRINT ‘Изменение столбца phone’ IF ((CURRENT_USER = ‘dbo’) AND

(COLUMNS_UPDATED()&1)! = 0 -- 1-ый стлбец; BEGIN

PRINT ‘Пользователь dbo не может изменять’ + ‘идентификационный номер автора’

ROLLBACK TRANSACTION END

 

2. Тестирование триггера:

 

UPDATED authsmall SET phone =‘415 986 - 7020’, au_fname = ‘John’ WHERE au_lname = ‘Green’

UPDATED authsmall SET phone =‘913 843 - 7302’, au_id = ‘748-126859’ WHERE au_lname = ‘Smith’

 

Задание 3.Создать триггер для команд INSERT и UPDATE, запрещающий производить изменения для автора Billy Geitsi, выполнив действия:

1. Создание и программирование триггера: CREATE TRIGGER auth_ ins_upd ON authsmall

FOR INSERT, UPDATE


AS

IF EXISTS (SELECT * FROM authsmall -- inserted; WHERE au_lname = ‘Geitsi’ -- фамилия;

au_fname = ‘Billy’) -- имя;

BEGIN

PRINT ‘Недопустимо написание кнги’+

‘автором Billy Geitsi’ ROLLBACK TRANSACTION

END

 

2. Тестирование триггера:

UPDATE authsmall SET au_lname = ‘Geitsi’,

au_fname = ‘Billy’ WHERE au_lname = ‘Smith’.

 

– Конец работы –

Эта тема принадлежит разделу:

Архитектура сервера MS SQL-Server 2000

НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ХАРЬКОВСКИЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ... БРЕСЛАВЕЦ В С...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Создание, программирование и управление триггерами

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Системные базы данных
Системные базы данных сервера, создаваемые при установке, и их файлы представлены в таблице: Таблица №1   Название Назначение

Dtwizard.exe– программа запуска мастера создания пакета DTS
(DTS Import Export Wizard); isql.exe– программа выполнения команд SQL, системных хранимых процедур или файлов команд, использующая интерфейс SQL S

MS SQL Server 2000.
  Цель работы –изучение логической структуры баз данных, которые создаются и используются в системах на основе сервера SQL Server 2000 и функционального назначения их

Основы программирования на Transact – SQL
  Цель работы –изучение структурированного языка запросов Transact – SQL, являющегося основой системы программирования SQL Server 2000, и приобретение навыков примене

Создание, отладка и оптимизация SQL – модулей
  Цель работы– приобретение навыков использования интегрированной среды утилиты SQL Server Query Analyzer для создания, хранения, отладки и оптимизации программных мо

Создание и обслуживание баз данных сервера
  Цель работы– изучение команд и системных хранимых процедур для создания, модификации, подключения, обслуживания, отключения и удаления баз данных, а также приобрете

Проектирование логической структуры базы данных
    Цель работы– ознакомление с основными понятиями и моделями баз данных, используемых в различных информационных системах, и приобретение навыков инфо

Создание, модификация и удаление таблиц
    Цель работы– изучение команд и системных хранимых процедур для создания, изменения структуры, просмотра свойств и удаления таблиц, а также приобрете

Планирование использования, создание и управление индексами
    Цель работы– изучение назначения, типов и способов определения индексов, синтаксиса и семантики команд языка Transact-SQL для их создания, переимено

Создание и управление представлениями
    Цель работы– изучение назначения представлений баз данных, синтаксиса и семантики команд языка Transact-SQL для их создания, изменения и удаления, с

Создание, изменение, применение и удаление функций и хранимых процедур
    Цель работы– изучение синтаксиса и семантики функций и хранимых процедур Transact – SQL: способов их идентификации, методов задания и специ

Создание и управление транзакциями
    Цель работы– изучение способов обеспечения надежной работы SQL Server 2000 с помощью механизма транзакций и контрольных точек, приобретение навыков

Управление и мониторинг блокировок
    Цель работы– изучение проблем надежности, возникающих в многопользовательских средах обработки данных, и механизмов блокирования операций различного

Создание, применение и управление курсорами
    Цель работы– изучение назначения и типов курсоров, синтаксиса и семантики команд языка Transact – SQL для создания и открытия курсоров, выборки данн

Реализация клиентских приложений баз данных
  Цель работы– изучить методы создания и использования клиентских приложений для работы с базами данных SQL Server 2000. На примере создания приложения в среде Delphi

Использование
Прежде всего в свойстве Connection в раскрывающемся вписке выбирается доступный объект класса TADOConnection, cсвязывающий SQL-таблицу приложения с конкретной таблицей базы данных, а

Использование
Связь с базой данных происходит, как и в случае ADO-Таблицы, с помощью свойства Connection. Добавим к форме компонент TDBGrid, TDataSource, TDBNavigatorи приложение почти готово. Д

Назначение
Компонент представляет собой обобщенный вариант компонентов TADOTableи TADOQuery.Он содержит несложный редактор SQL-команд, вызываемый при обращении к сво

Система безопасности SQL Server 2000
  Цель работы– изучение общих правил разграничения и предоставление прав доступа пользователям баз данных, архитектуры и компонент системы безопасности SQL Server 200

Регистрация серверов SQL
  Цель работы –приобретение навыков регистрации удаленных серверов с помощью утилиты Enterprise Manager, мастера Register Server Wizard, а также команд Transact-SQL и

Запуск, остановка и приостановка служб сервера
  Цель работы– приобретение навыков управления основной службой MSSQLServer и вспомогательными службами сервера MS SQL Server 2000: задание режима автоматического зап

Публикация данных с помощью HTML-страниц в системе SQL Server 2000
  Цель работы– ознакомление с основными концепциями и технологиями, лежащими в основе функционирования сервера, и реализующими и их компонентами: средствами администр

Имя виртуального каталога
В поле Local Path указать путь к создаваемому каталогу. 5 Выбрать вкладку Security для управления параметрами подключения к серверу MS SQL Server 2000 Web-сервера, который подключается к б

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги