- •Н.И. Коваленко
- •Коваленко н.И., Банчук г.Г.
- •Коваленко Надежда Ивановна
- •Тема 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. Доступ к многомерным данным
3. Создание транзакций и работа с ними. Точки сохранения
Транзакцию можно описать с помощью ключевых слов BEGIN TRAN, СOMMIT TRAN и ROLLBACK TRAN. В коде программы любая транзакция должна начинаться инструкцией BЕGIN TRAN, а заканчиваться инструкцией COMMIT TRAN или ROLLBACK TRAN, в противном случае сервер будет сохранять блокировки до отсоединения клиента.
Когда в базе данных выполняется инструкция BEGIN TRAN, SQL Server помечает в журнале транзакций базы данных точку возвращения, которая будет использоваться в случае отката транзакции. Инструкция BEGIN TRAN явно указывает SQL Server, что все следующие инструкции вплоть до инструкции COMMIT TRAN или ROLLBACK TRAN должны трактоваться как один логический блок, в котором может выполняться несколько операций.
Выполнение инструкции COMMIT TRAN сообщает SQL Server, что работа закончена, и никаких других действий в транзакции больше не будет.
Выполнение инструкции COMMIT TRAN также подразумевает, что удовлетворены все условия теста ACID.
Выполнение инструкции ROLLBACK TRAN в SQL Server эквивалентно выбору пункта Undo меню Edit редактора Word. Отправка инструкции ROLLBACK TRAN на cepвep базы данных вызывает откат всех инструкций, выполненных после последней инструкции BEGIN TRAN. Как правило, ROLLBACK TRAN выполняется в длительной транзакции, если в какой-либо ее части обнаруживается ошибка. Как правило, код больших хранимых процедур или приложений с множеством инструкций SQL понять достаточно трудно. Именованные транзакции и точки сохранения служат именно этой цели. Они обеспечивают способ отката данной именованной (named) и сохраненной (saved) части кода, даже если эта часть имеет высокий уровень вложенности.
Именованные транзакции (named transaction) обеспечивают удобный способ назначения идентификатора для блока кода. Именованные транзакции упрощают реализацию отката больших объемов кода. Для создания именованной транзакции добавьте имя транзакции в инструкцию BEGIN TRAN:
/* Открыть внешнюю транзакцию */
BEGIN TRAN Update_Authors
UPDATE Authors
SET contract = 1
WHERE au_id = '341-22-1782'
/* Открыть внутреннюю транзакцию */
BEGIN TRAN Update_TitleAuthor
UPDATE TitleAuthor
SET royaltyper = royaltyper + 25
WHERE au_id = "341 -22-1782'
IF @@ERROR != 0
BEGIN
ROLLBACK TRAN Update_TitleAuthor
PRINT ‘Невозможно обновить Royalties’
RETURN
END
COMMIT TRAN Update_TitIeAuthor
COMMIT TRAN Update_Authors
Точки сохранения (SavePoints) — это просто другой способ выполнения именованных транзакций. Они обеспечивают возможность маркировки места в коде, которое используется при откате. Для создания точки сохранения используйте следующую команду SQL:
SAVE TRANSACTION Имя_Транзакции
При выполнении инструкции ROLLBACK TRAN достаточно указать идентификатор Имя_транзакции:
BEGIN TRAN
UPDATE Authors
SET contract= 1
WHERE au_id = '341-22-1782'
/* Сохраним нашу работу в этой точке */
SAVE TRANSACTION AuthorDone
UPDATE TitleAuthor
SET royaltyper = royaltyper +25
WHERE au_id = '341-22-1782'
IF @@ERROR != 0 or @@rowcount > 1
BEGIN
/* Откат и выход */
ROUBACK TRAN AuthorDone
PRINT 'Ошибка во время обновления TitleAuthor'
RETURN
END
COMMIT TRAN
PRINT 'Транзакция успешно завершена'