русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Создание хранимых процедур


Дата добавления: 2014-02-04; просмотров: 976; Нарушение авторских прав


END

RETURN

BEGIN

END

RETURN

BEGIN

Функции

END

Выбор одного из нескольких значений

END

BEGIN

Циклическое выполнение операций

END

BEGIN

END

BEGIN

Оператор условия

Элементы Transact SQL

Операторы управления выполнением программы:

В процедурах могут использоваться следующие операторы управления:

IF <выражение>

<операторы>

[ELSE]

[IF <выражение>]

<операторы>

Если используется один оператор, то BEGIN … END не нужен.

WHILE <логическое выражение>

<операторы>

В этом операторе можно также использовать операторы BREAKи CONTINUE, которые позволяет прервать выполнение этого цикла.

CASE <переменная>

WHEN <условие1> THEN <оператор1>

WHEN <условие2> THEN <оператор2>

WHEN <условие3> THEN <оператор3>

ELSE <оператор>

Оператор RETURN выполняет безусловный выход из запроса или процедуры.

В программу можно включать комментарии. Однострочные комментарии отделяются от оператора двумя дефисами (--). Многострочные комментарии заключаются в символы: (/*…*/).

Для объявления переменных, которые используются в процедуре, служит директива DECLARE. Если необходимо присвоить переменной какое-либо значение, используется ключевое слово SETили SELECT. Если значение присваивается одной переменной, эти команды эквивалентны. Команда SELECTможет присваивать значения одновременно нескольким переменным. Идентификаторы переменных начинаются с символа @.



 

Для большинства функций используется следующий синтаксис:

имя функции(аргумент) или @@имя функции.

Например: @@TRANCOUNT возвращает число незавершенных транзакций

IF (@@TRANCOUNT>0)

RAISERROR (‘задание не может быть выполнено в транзакции’, 10,1)

Оператор RAISERROR возвращает пользовательское сообщение об ошибке, позволяет пользователям получать записи из системной таблицы sysmessages или создавать сообщение динамически, на основе заданного пользователем уровня и кода ошибки.

Синтаксис:

RAISERROR({код ошибки|символьная строка} уровень ошибки, состояние). Сообщение об ошибке можно стандартизировать и использовать многократно. Для этого сообщение следует определить в БД. Синтаксис включения сообщения в БД:

Sp_addmessage код сообщения, код важности, текст сообщения[,язык[FALSE|TRUE],REPLACE]]]

Флаг FALSE|TRUE определяет, должно ли сообщение записываться в журнал ошибок. REPLACE заменяет существующее сообщение с указанным кодом.

Функция @@ROWCOUNT возвращает количество строк, измененных последним запросом.

Например:

UPDATE STAFF SET LastName = ‘Иванов’

WHERE LastName = ‘Иванков’

IF(@@ROWCOUNT=0)

PRINT ‘Внимание : Ни одна запись не была изменена’

Операторы TRANSACT-SQL могут выполняться разными способами: по одному, пакетами, в составе хранимых процедур или триггеров, как сценарии.

Пакет – это набор операторов TRANSACT-SQL, одновременно передаваемых SQL –серверу и выполняемых как единая группа. Пакеты выполняются интерактивно или в составе сценария. Пакеты являются основой для программ SQL Server. Пакет содержит одну или несколько команд SQL. Команды пакета анализируются, компилируются и выполняются как единая группа. Если вызов хранимой процедуры не является первой командой пакета, перед именем процедуры должно стоять ключевое слово EXEC.

 

Обработка хранимых процедур включает ее создание и перемещение в кэш процедур – область памяти, используемую сервером для хранения скомпилированных планов выполнения сохраненной процедуры.Хранимую процедуру можно создавать в следующем порядке: сначала написать операторы Transact SQL, которые должны быть включены в хранимую процедуру, и проверить и работу, а затем, если нужный результат получен, можно создать хранимую процедуру.

Для создания хранимой процедуры используется оператор SQL CREATE PROCEDURE.

Синтаксис:

CREATE PROCEDURE <имя процедуры> (@<имя перем1> <тип данных>, @<имя перем2> <тип данных>…)

[@параметр тип данных[=значение по умолчанию] [OUTPUT]

[WITH

{ RECOMPILE

|ENCRYPTION

|RECOMPILE,ENCRYPTION}]

[FOR REPLICATION]

AS <тело процедуры>

Ключевое слово RECOMPILE определяет режим компиляции. Если RECOMPILE задано, то процедура будет перекомпилироваться всякий раз, когда она будет передаваться на выполнение (план выполнения не кэшируется, при каждом выполнении создается новый план). Ключевое слово ENCRYPTION определяет режим, при котором исходный текст хранимой процедуры не сохраняется в БД. Кроме имени все остальные параметры являются необязательными.

Каждая хранимая процедура компилируется при первом выполнении. Описание процедуры совместно с планом ее работы хранится в системных таблицах БД.



<== предыдущая лекция | следующая лекция ==>
Хранимые процедуры | WHEN 3 THEN 20


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.547 сек.