Учебник по SQL

SQL ГЛАВНАЯ Введение в SQL Синтаксис SQL Выбор SQL SQL выбрать отдельный SQL Где SQL И, Или, Не Порядок SQL по SQL вставить в Нулевые значения SQL Обновление SQL SQL Удалить SQL выберите вверху SQL Мин. и Макс. Количество SQL, среднее, сумма SQL нравится Подстановочные знаки SQL SQL входящий SQL между Псевдонимы SQL SQL-соединения Внутреннее соединение SQL Левое соединение SQL SQL правое соединение Полное соединение SQL Самостоятельное присоединение SQL Союз SQL Группа SQL по SQL Имея SQL существует SQL Любой, Все SQL выбрать в SQL вставить в выбор SQL-кейс Нулевые функции SQL Хранимые процедуры SQL Комментарии SQL SQL-операторы

База данных SQL

SQL Создать БД БД SQL Drop Резервная копия базы данных SQL Создание таблицы SQL Таблица удаления SQL Таблица изменений SQL Ограничения SQL SQL не нулевой Уникальный SQL Первичный ключ SQL Внешний ключ SQL Проверка SQL SQL по умолчанию Индекс SQL Автоматическое увеличение SQL Даты SQL Представления SQL SQL-инъекция Хостинг SQL Типы данных SQL

Ссылки на SQL

Ключевые слова SQL Функции MySQL Функции SQL-сервера Функции MS Access Краткое руководство по SQL

Примеры SQL

Примеры SQL SQL-викторина SQL-упражнения SQL-сертификат

Хранимые процедуры SQL для SQL Server


Что такое хранимая процедура?

Хранимая процедура — это подготовленный код SQL, который можно сохранить, чтобы его можно было повторно использовать снова и снова.

Поэтому, если у вас есть SQL-запрос, который вы пишете снова и снова, сохраните его как хранимую процедуру, а затем просто вызовите его для выполнения.

Вы также можете передавать параметры хранимой процедуре, чтобы хранимая процедура могла действовать на основе переданных значений параметров.

Синтаксис хранимой процедуры

CREATE PROCEDURE procedure_name
AS
sql_statement
GO;

Выполнение хранимой процедуры

EXEC procedure_name;

Демонстрационная база данных

Ниже приведена выборка из таблицы «Клиенты» в образце базы данных «Борей»:

CustomerID CustomerName ContactName Address City PostalCode Country
1

Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4

Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

Пример хранимой процедуры

Следующая инструкция SQL создает хранимую процедуру с именем «SelectAllCustomers», которая выбирает все записи из таблицы «Customers»:

Пример

CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO;

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

Пример

EXEC SelectAllCustomers;


Хранимая процедура с одним параметром

Следующая инструкция SQL создает хранимую процедуру, которая выбирает клиентов из определенного города из таблицы «Клиенты»:

Пример

CREATE PROCEDURE SelectAllCustomers @City nvarchar(30)
AS
SELECT * FROM Customers WHERE City = @City
GO;

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

Пример

EXEC SelectAllCustomers @City = 'London';

Хранимая процедура с несколькими параметрами

Настройка нескольких параметров очень проста. Просто перечислите каждый параметр и тип данных через запятую, как показано ниже.

Следующая инструкция SQL создает хранимую процедуру, которая выбирает клиентов из определенного города с определенным почтовым индексом из таблицы «Клиенты»:

Пример

CREATE PROCEDURE SelectAllCustomers @City nvarchar(30), @PostalCode nvarchar(10)
AS
SELECT * FROM Customers WHERE City = @City AND PostalCode = @PostalCode
GO;

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

Пример

EXEC SelectAllCustomers @City = 'London', @PostalCode = 'WA1 1DP';