Спонсор: Microsoft
Опубликован: 22.11.2010 | Доступ: свободный | Студентов: 4106 / 1007 | Оценка: 4.44 / 4.34 | Длительность: 09:23:00
Лекция 5:

Создание динамических запросов при помощи хранимых процедур

Аннотация: Описывает создание динамических запросов при помощи хранимых процедур.

Цель: изучить процесс создания динамических запросов при помощи хранимых процедур

Хранимая процедура - SQL запрос, который имеет параметры, то есть он выполняется как обычная процедура (мы задаем ее имя и передаем в хранимую процедуру значение параметров.) В зависимости от значения параметров хранимой процедуры мы получаем тот или иной результат запроса.

Замечание. В SQL сервере хранимые процедуры реализуют динамические запросы, выполняемые на стороне сервера.

Рассмотрим создание хранимых процедур при помощи команд языка SQL. Чтобы отобразить хранимые процедуры рабочей БД панели "Object Explorer" нужно выделить пункт "Stored Procedures". Чтобы создать новую процедуру при помощи команд языка SQL нужно щелкнуть ЛКМ по кнопке


на панели инструментов. В рабочей области окна сервера появится вкладка SQLQuery1.sql, где нужно набрать код новой процедуры, который имеет следующий синтаксис:

CREATE PROCEDURE <Имя процедуры> 
[@<Параметр1> <Тип1>[=<Значение1>], 
@<Параметр2> <Тип2>[=<Значение2>], …]
[WITH ENCRYPTION]
AS <Команды SQL>

Здесь:

  • Имя процедуры - имя создаваемой хранимой процедуры.
  • Параметр1, Параметр2, … - параметры передаваемые в процедуру.
  • Значение1, Значение2, … - значения параметров по умолчанию.
  • Тип1, Тип2, … - типы данных параметров.
  • WITH ENCRYPTION - включает шифрование данных.
  • Команды SQL - SQL запрос, который выполняется при запуске процедур.

Замечание: SQL запрос включает в себя параметры, если параметры сравниваются с какими то полями или выражениями, то они должны иметь точно такой же тип данных как эти поля или выражения.

Замечание: После создания процедура помещается в раздел Stored Procedures текущей БД на панели "Object Explorer". Если дважды щелкнуть по процедуре ЛКМ, то она откроется для редактирования на вкладке "SQLQuery".

Чтобы посмотреть информацию о хранимой процедуре необходимо выполнить команду:

EXEC SP_HELPTEXT <Имя процедуры>

Хранимые процедуры могут быть запущены следующей командой

EXEC <Имя процедуры> [<Параметр1>, <Параметр2>, …]

Здесь:

  • <Имя процедуры> - имя выполняемой процедуры.
  • Параметр1, Параметр2, … - значение параметров.

Пример: Создание хранимой процедуры, который выводит имя студентов, у которых средний балл больше заданной величины:

CREATE PROCEDURE СрБАЛЛ
@X Real
AS
SELECT *
FROM Студенты
WHERE
(Оценка1+ Оценка2+ Оценка3)/3>@X

Команда вызова приведенной выше процедуры выглядит следующим образом:

EXEC СрБАЛЛ 4

Команда выводит всех студентов, у которых средний балл больше 4.

На этом мы заканчиваем рассмотрение хранимых процедур. Дополнительную информацию можно найти в "Хранимые процедуры" .

Татьяна Казакова
Татьяна Казакова
Олег Андриевский
Олег Андриевский

Также весьма интересен фильтр данных, вводимый вручную:

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        If Trim(TextBox1.Text) = "" Then
            Me.СтудентыBindingSource.RemoveFilter()
        Else
            Me.СтудентыBindingSource.Filter = String.Format("{0} LIKE '{1}%'", "ФИО", Trim(TextBox1.Text))
        End If
    End Sub

Николай Баженов
Николай Баженов
Россия, Сосновый Бор
Руслан Халитов
Руслан Халитов
Россия, Томск, ТУСУР