- •Н.И. Коваленко
- •Коваленко н.И., Банчук г.Г.
- •Коваленко Надежда Ивановна
- •Тема 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. Операторы языка управления программой. Оператор declare
Язык управления программой придаёт хранимым процедурам дополнительные возможности, которых нет в стандартном варианте Transact-SQL, например, выполнение циклов и анализ значений переменных. К операторам языка управления программой относятся:
GOTO метка
BEGIN…END
IF…ELSE
WAITFOR
RETURN
WHILE
BREAK
CONTINUE
К расширениям Transact-SQL относятся операторы:
DECLARE PRINT RAISERROR
Оператор DECLARE – с его помощью можно создавать переменные, используя стандартные типы данных SQL Server. Переменные, определяемые оператором DECLARE, должны начинаться с символа @. В одном операторе можно объявить несколько переменных, разделяя их запятыми. Синтаксис оператора DECLARE:
DECLARE @переменная1 тип_данных [,переменная2 тип_данных…]
Пример создания трех переменных различных типов данных:
DECLARE @count INT, @current_date DATETIME
DECLARE @ My_Message VARCHAR (255)
Чтобы инициализировать или установить значения переменной, создаваемой с помощью оператора DECLARE, используется ключевое слово SELECT, например, для установления значения переменной @count, равным 100:
SELECT @count=100
Чтобы установить значение @count равным общему числу строк в таблице authors БД pubs:
SELECT @count= count (*)
FROM pubs.authors
4. Операторы goto, begin…end и if…else
Оператор GOTO – передает управление соответствующей метке хранимой процедуры, с которой будет продолжено выполнение операторов. Синтаксис:
GOTO метка
Пример - оператор GOTO пропускает оператор SELECT и выполняет оператор UPDATE:
GOTO do_update
SELECT * from authors
do_update:
UPDATE authors
SET au_lname= “Spenik’
WHERE state=’VA’
При определении метки её имя должно оканчиваться двоеточием, а при ссылке на имя в GOTO двоеточие не ставится.
Оператор BEGIN…END объединяет набор операторов SQL и операторов языка управления программой в единое целое. Синтаксис:
BEGIN
{оператор SQL | блок операторов}
END
Оператор IF…ELSE служит для проверки условий и в зависимости от результатов проверки выполняет соответствующие операторы SQL. Оператор IF проверяет выражение типа BOOLEAN, если возвращаемое значение = TRUE, выполняется блок операторов, следующий за оператором IF, иначе выполняется необязательный оператор ELSE. Синтаксис:
IF выражение_ типа _ BOOLEAN
{Операторы SQL | блок операторов}
[ELSE [выражение_ типа _ BOOLEAN]
{Операторы SQL | блок операторов}
Примеры (используется как одиночный оператор SQL, так и блок операторов):
1) IF @count=0
SELECT * FROM authors
ELSE
SELECT * FROM titles
2) IF @Total ! =0
BEGIN
SELECT count (*) FROM authors
SELECT count (*) FROM titles
END
ELSE
BEGIN
SELECT * FROM authors
SELECT * FROM titles
END
5. Операторы waitfor, return, while, break и continue
Оператор WAITFOR – формирует задержку, в течении которой хранимая процедура находится в состоянии ожидания. Величина задержки определяется либо заданным интервалом времени (с помощью опции DELAY), либо интервалом до наступления заданного времени суток (с помощью опции TIME). По истечении времени задержки выполнение хранимой процедуры продолжается. Синтаксис:
WAITFOR {DELAY ‘интервал времени’ | TIME ‘время суток'}
Максимальное время задержки, формируемое оператором WAITFOR, составляет 24 часа. В опциях DELAY и TIME используется формат :чч:мм:сс.
Примеры:
1) формируется десятисекундная задержка:
WAITFOR DELAY ’00:00:10’
2) состояние ожидания продлится до 11 часов утра:
WAITFOR TIME ’11:00:00’
Оператор RETURN – выполняет выход из хранимой процедуры и обеспечивает возврат в вызывающую процедуру или приложение. Синтаксис:
RETURN [Целое_значение]
Целое значение можно вернуть в вызывающую процедуру или приложение, используя следующий синтаксис:
Exec @ status=имя_процедуры
При написании хранимых процедур нулевое значение (0) используется для индикации факта успешного завершения. Отрицательные значения свидетельствуют о возникновении ошибок. Коды возврата от -1 до – 99 зарезервированы для SQL Server. С помощью RETURN можно возвращать только целые значения. Если не нужно возвращать данные других типов, необходимо использовать параметры хранимой процедуры.
Зарезервированные коды возврата хранимых процедур:
Значение |
Описание |
0 |
Процедура выполнилась успешно |
-1 |
Отсутствует объект |
-2 |
Несоответствие типа данных |
-3 |
Процесс «завис» |
-4 |
Ошибка доступа |
-5 |
Синтаксическая ошибка |
-6 |
Пользовательская ошибка |
-7 |
Ошибка ресурса (нехватка памяти) |
-8 |
Не фатальная внутренняя проблема |
-9 |
Достигнуто системное ограничение |
-10 |
Фатальная внутренняя проблема |
-11 | |
-12 |
Повреждена таблица или индекс |
-14 |
Аппаратный сбой |
Операторы WHILE, BREAK и CONTINUE
С помощью оператора WHILE можно циклически выполнять один оператор SQL или блок операторов до тех пор, пока соблюдается заданное условие. Оператор BREAK вызывает выход из цикла WHILE, а оператор CONTINUE – безусловный переход к началу цикла, пропуская все операторы, стоящие за оператором CONTINUE. Эти операторы имеют следующий формат.
WHILE выражение_ типа _ BOOLEAN
{оператор SQL | блок операторов}
[BREAK | CONTINUE]