- •Н.И. Коваленко
- •Коваленко н.И., Банчук г.Г.
- •Коваленко Надежда Ивановна
- •Тема I. Общие сведения о ms sql Server 2000
- •1. Базы данных типа клиент/сервер
- •Система типа клиент/сервер
- •2. История sql Server
- •Основные количественные показатели системы sql – сервер
- •3. Обзор sql Server 2000
- •4. Стандартные объекты sqlServer
- •ТемаIi. Работа с ms sqlServer2000 и его компонентами
- •1. Запуск, приостановка и завершение работы sqlServer
- •2. SqlServerEnterpriseManager
- •3. Программа sqlServerQueryAnalyzer
- •Панель инструментов утилиты Query Analyzer
- •4. Обслуживание баз данных
- •Файлы операционной системы, используемые sql Server 2000:
- •Структура базы данных
- •5. УстановкаMicrosoftSqlServer2000
- •Ограничения инсталляции sql-сервера
- •ТемаIii. Работа с базой данных создание и использование индексов и ключей
- •1. Базы данных и их свойства
- •Описание ролей, используемых для доступа к базе данных и серверу баз данных
- •Дополнительные опции настройки базы данных
- •Настройка параметров доступа к базе данных
- •2. Таблицы базы данных.
- •3. Типы данных, используемые в sql-сервере
- •Текстовые типы данных
- •Типы данных даты и времени
- •Типы данных для хранения больших объемов информации
- •Типы данных специального назначения:
- •4. Основные операции с базами данных
- •5. Восстановление бд (администрированиеSqlServer2000)
- •6. Создание и использование индексов и ключей в системе sql Server.
- •7. Использование ограничений
- •8. Использование диаграмм для разработки структуры базы данных
- •9. Создание представлений (видов)
- •ТемаIv. Правила и создание значения
- •1. Инструменты контроля целостности данных
- •2. Создание правил и стандартных значений
- •ТемаV. Триггеры в системеSql–сервер
- •1. Понятие триггера. Типы триггеров
- •2. Создание триггеров
- •3. Использование триггеров. Виды триггеров
- •ТемаVi. Оптимизация запросов и основы sql
- •1. Оптимизация запросов
- •2. Основные операторы sql в sql Server 2000
- •3. Объединение таблиц в операторе select
- •From titles
- •4. Использование директив group by иHaving
- •5. Оператор insert
- •6. ОператорUpdate
- •7. ОператорDelete
- •8. ОператорCreatetable
- •ТемаVii. Создание и работа с представлениями
- •1. Основные сведения о представлениях
- •2. Создание представлений. Отображение представлений
- •3. Редактирование представлений. Отображение зависимостей представлений. Создание представлений и представлений
- •4. Переименование столбцов представлений. Переименование представлений. Удаление представлений
- •5. Изменение данных посредством представлений. Обновление данных с помощьюSqlServerEnterpriseManager
- •ТемаViii. Создание и использование курсоров
- •1. Понятие курсора
- •2. Выборка данных из курсора
- •3. Операторы и глобальные переменные для работы с курсорами
- •4. Примеры использования курсоров
- •ТемаIx. Использование хранимых процедур
- •1. Достоинства и недостатки хранимых процедур
- •2.Создание хранимой процедуры
- •3. Операторы языка управления программой. Оператор declare
- •4. Операторы goto, begin…end и if…else
- •5. Операторы waitfor, return, while, break и continue
- •6. Операторы print и raiserror
- •7. Использование параметров в хранимых процедурах
- •8. Глобальные переменные. Отладка хранимых процедур
- •Тема X. Транзакции и блокировки
- •1. Определение транзакции. Ограничения для транзакций. Уровни изоляции транзакций
- •2. Базовая информация о блокировках. Типы блокировок
- •3. Создание транзакций и работа с ними. Точки сохранения
- •4.Отображение информации о блокировках. Явное задание блокировки
- •Описание параметров для явного задания блокировок
- •ТемаXi. Система безопасностиSqlServer2000
- •1. Типы безопасности. Создание и управление бюджетами пользователей
- •Стандартные роли сервера
- •Стандартные роли базы данных
- •2. Добавление новых пользователей. Удаление идентификаторов и пользователей
- •3. Создание ролей. Удаление ролей
- •4. Права доступа. Управление правами доступа
- •ТемаXii. Использование распределенных объектов управления.
- •1.Sql-dmo. Назначение, возможности
- •2. Экспорт данных с помощью команды вср
- •3. Использование объектовSql-dmOв хранимых процедурах
- •ТемаXiii. Основные сведения о хранилищах данных
- •1. Хранилища данных. Системы поддержки принятия решений (dss). Интерактивная аналитическая обработка (olap)
- •Сравнение субд и хранилища данных
- •2. Компоненты хранилища данных. Хранилища данных и магазины данных
- •3. Преобразование данных. Метаданные
- •4. Разработка плана хранилища данных
- •Microsoft Repository
- •С помощью мастера dts можно выполнять также простые преобразования данных, сложные преобразования выполняются с помощью dts Designer.
- •ТемаXiv. Использование служб преобразования данных
- •1. Службы преобразования данных (dts).DtSи хранилища данных
- •2. СредствоDtsDataPump
- •3. МастераDts
- •4. ИспользованиеDtsDesigner
- •Тема XV. Службы olap Microsoft sql Server
- •1.OlaPи многомерные данные
- •2. Хранение данных в бдolap
- •3. Оптимизация базы данныхOlap
- •4. Доступ к многомерным данным
ТемаV. Триггеры в системеSql–сервер
1. Понятие триггера. Типы триггеров
Триггер– это особый вид хранимой процедуры, который активизируется при попытке изменения данных в таблице, для которой определен триггер.
Триггеры определяются для конкретных таблиц. Они удобны для БД, используемых большим количеством различных приложений, так как дают возможность поддерживать целостность данных, не полагаясь на программное обеспечение приложений.
Если правила и установки по умолчанию SQL Server применяет перед записью информации в БД, то триггеры – это так называемый постфильтр, применяемый после воздействия правил и установок по умолчанию, он представляет собой последнее слово в модификации. Триггер выполняется SQL Server автоматически при операциях добавления (INSERT), обновления (UPDATE) и удаления (DELETE) в данной таблице. Триггер применяется после выполнения соответствующей операции. Если триггер вызывает ошибку в запросе, SQL Server отказывается от обновления информации и возвращает сообщение об ошибке в приложение, выполняющее это действие. Если для таблицы определен триггер, то при выполнении соответствующей операции обойти его нельзя. Вызвать триггер непосредственно невозможно, он реагирует только на событие, для которого определен.
Наиболее общее применение триггеров – поддержка целостности в БД. Он используется, когда не могут быть применены стандартные условия на значения (constraints) столбцов и основанная на таблицах декларативная ссылочная целостность (Declarative Referential Integrity, DRI). SQL Server рассматривает триггер как единое целое – как одну транзакцию, которая либо фиксируется, либо откатывается, вне зависимости от наличия соответствующих операторов в теле триггера.
В SQL Server 2000 для каждой операции модификации данных можно определить несколько триггеров.
2. Создание триггеров
Для создания триггера необходимо быть владельцем БД и владельцем таблицы, для которой он создается. При добавлении триггера к таблице изменяется тип доступа, отношение к ней других объектов. На самом деле изменяется вся схема БД, поэтому этот тип операции зарезервирован для владельца БД и защищен от других пользователей.
Создание триггера очень похоже на объявление хранимой процедуры и имеет следующий синтаксис:
CREATE TRIGGER имя_триггера
ON таблица
[WITH ENCRYPTION]
FOR {DELETE, INSERT, UPDATE}
[WITH APREND]
[NOT FOR REPLICATION]
AS
инструкция SQL
Или используя предложение IFUPDATE:
CREATE TRIGGER имя_триггера
ON таблица
[WITH ENCRYPTION]
FOR {INSERT, UPDATE}
[WITH APREND]
[NOT FOR REPLICATION]
AS
IF UPDATE (имя_столбца1)
[AND | OR UPDATE (имя_столбца2),…]
инструкция SQL.
Параметры команды:
1) WITH ENCRYPTION– зашифровать текст триггера.
2) FOR INSERT, UPDATE, DELETE– определяют операцию модификации таблицы, при которой будет активизирован триггер. Ключевых слов может быть несколько, но обязательно должно быть указано хотя бы одно из них.
3) WITH APREND– используется при создании дополнительных триггеров, если установленный уровень совместимости не превышает 65.
4) NOT FOR REPLICATION– триггер активизируется только при модификации таблицы в процессе репликации.
5) AS– начало тела триггера.
6) инструкция SQL– может содержать любое количество операцийSQL, если они заключены вBegin…end.
7) IF UPDATE(столбец) – для операции добавления и обновления можно определить дополнительные условия на конкретный столбец (столбцы) – соединить условия можно связкамиANDиOR.
При обновлении версии БД, SQLServerиспользует нешифрованный текст триггеров, хранимых в таблицеSyscomments. Если текст триггера зашифрован, восстановить или обновить триггер в новой БД невозможно.
Когда выполняется триггер, SQLServerсоздает специальную таблицу, куда он помещает данные, вызвавшие выполнение триггера. Эта таблица называетсяINSERTEDдля операций добавления и обновления иDELETED- для операций удаления и обновления. Поскольку триггеры выполняются после завершения операции, строки в таблицеINSERTEDвсегда дублируют одну или несколько записей базовой таблицы.
Ограничения при создании триггеров:
оператор CREATE TRIGGERможет применяться только к одной таблице;
триггер можно создавать только в текущей БД, но в нем можно ссылаться на внешние объекты;
триггер нельзя создавать на базе представления (View);
в тексте триггера нельзя использовать следующие инструкции:
DENY
DATABASE DEFAULT INDEX RULE TABLE TRIGGER VIEW
PROCEDURE
DROP GRANT /
REVOKE
RECONFIGURE UPDATE
STATISTICS
TRUNCATE
TABLE