
- •Н.И. Коваленко
- •Коваленко н.И., Банчук г.Г.
- •Коваленко Надежда Ивановна
- •Тема 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. Доступ к многомерным данным
2.Создание хранимой процедуры
Для создания хранимой процедуры в среде SQL Server используется оператор CREATE PROCEDURE со следующим синтаксисом:
CREATE PROCEDURE [владелец.] имя процедуры [;номер]
[(@ параметр 1 тип_данных[VARYING] [= значение по умолчанию] [OUTPUT] [,@ параметр 2]… [,@ параметр 1024])]
[{FOR REPLICATION} | {WITH RECOMPILE}[{WITH] | [,]} ENСRYPTION]]
AS Операторы SQL
Слово PROCEDURE можно вводить полностью или сокращать до PROC, например:
CREATE PROC usp_test
Имена хранимых процедур должны отвечать стандартам о наименовании объектов SQL Server. Максимальный размер имени процедуры - 128 символов. Можно создать локальную временную хранимую процедуру, разместив # в начале имени процедуры. Локальной временной хранимой процедурой можно воспользоваться только в текущем сеансе работы, после завершения сеанса эта процедура удаляется. Добавив два символа ## в начале имени процедуры, можно создавать глобальную временную хранимую процедуру, которой могут воспользоваться все подключенные в данный момент пользователи, она удаляется после последнего сеанса, в котором процедура была задействована.
Соглашение об именах хранимых процедур:
Тип1: usp _<имя_процедуры>
Например: usp_customer_inqury
usp – это user - defined store procedure – определяемая пользователем хранимая процедура.
Тип2: этот тип объединяет действие, выполняемое в хранимой процедуре, и ее имя, Например, имя процедуры, удаляющей информацию о покупателях del_customer. Если хранимая процедура выполняет несколько функций, используется синтаксис oth_<имя процедуры>.
INSERT ins_<имя процедуры>
SELECT sel_< имя процедуры >
UPDATE upd_< имя процедуры >
другие oth_< имя процедуры >
Вид < имя >_ view, например, customer_ view
В синтаксисе хранимой процедуры элемент номер означает необязательное целое число, которое можно использовать для группировки хранимых процедур под одним именем, чтобы их можно было удалять одним оператором.
Параметр означает возможность передачи в хранимую процедуру необходимых параметров, количество которых ≤1024. FOR REPLICATION отмечает данную хранимую процедуру как используемую только в процессах репликации. При использовании опции WITH RECOMPILE план запроса хранимой процедуры не хранится в процедурном кэше. Вместо этого при каждом выполнении процедуры генерируется новый план запроса. Опции FOR REPLICATION и WITH RECOMPILE совместно использовать нельзя. Опцию WITH RECOMPILE следует использовать в следующих случаях:
1) при передаче в хранимую процедуру параметров, которые по-разному распределяют данные, оптимизатор запросов может создать различные планы запросов;
2) если передаются параметры в хранимую процедуру, но вас не устраивает время выполнения этой хранимой процедуры - можно вызвать перекомпиляцию этой хранимой процедуры при её следующем выполнении.
Опция WITH ENCRYPTION вызывает шифровку текста хранимой процедуры в таблице syscomments, чтобы пользователи не могли ознакомиться с содержимым процедуры. Эту опцию следует применять только в случае крайней необходимости.
Операторы SQL – это операторы SQL или операторы управления программой, составляющие хранимую процедуру.
Рассмотрим примеры создания простых хранимых процедур в базе данных pubs:
1) Создадим хранимую процедуру usp_show_authors, которая выбирает все столбцы и строки из таблицы authors:
CREATE PROCEDURE usp_show_authors
AS
SELECT * FROM authors
2) Создадим хранимую процедуру usp_Texas_Publisher, которая отбирает все имена издателей штата Техас из таблицы publishers и использует при этом опцию WITH ENCRYPTION:
CREATE PROC usp_Texas_Publisher WITH ENCRIPTION
AS
SELECT pub_name
FROM publishers
WHERE state = ‘TX’
Хранимые процедуры создаются в той БД, в которой была выполнена команда CREATE PROCEDURE. Исключением являются временные хранимые процедуры, которые создаются в БД tempdb. Для запуска хранимой процедуры необходимо набрать её имя в окне запросов программы Microsoft SQL Server Query Analyzer и щелкнуть на зеленой стрелке. Если же хранимая процедура не является первым оператором в строке запроса, для её запуска используют оператор EXECUTE:
EXECUTE <имя процедуры>
или
EXEC <имя процедуры>.
При создании хранимых процедур можно использовать мастер хранимых процедур Stored Procedure Wizard – обычно используют для создания процедур вставки, удаления или обновления данных. Мастер автоматически создает необходимые переменные, которые входят в состав большинства хранимых процедур. Чтобы сделать хранимую процедуру более простой для эксплуатации в неё добавляют заголовок, например:
CREATE PROCEDURE usp_proc_name as
/*….
Имя процедуры
Описание:
Параметры:
Вызывается:
Другие результаты:
Пример: <пример вызова хранимой процедуры>
Обновления:
………*/
В SQL Server 2000 предусмотрена команда ALTER PROCEDURE, с помощью которой разработчик может модифицировать содержимое существующей хранимой процедуры. При использовании этой команды будут также сохранены любые права доступа (разрешения на запуск), которые были назначены хранимой процедуре.
Синтаксис команды:
ALTER PROCEDURE [владелец.] имя_процедуры [;номер]
[(@ параметр1 тип данных [= значение_по_умолчанию] [OUTPUT] [,@ параметр2]…
[@ параметр 1024])] [{FOR REPLICATION } | { FOR
RECOMPILE} [{[WITH] | [,]}
ENCRYPTION]] AS Операторы SQL