Хранимая процедура — это подготовленный код SQL, который вы можете сохранить, поэтому код можно использовать повторно снова и снова.
Итак, если у вас есть запрос SQL, который вы пишете снова и снова, сохраните это как хранимая процедура, а затем просто вызовите ее для выполнения.
Вы также можете передавать параметры в хранимую процедуру, чтобы хранимая процедура могла действовать на основе значений параметров. это пройдено.
Синтаксис хранимой процедуры
CREATE PROCEDURE procedure_name
AS
sql_statement
GO;
Выполнить хранимую процедуру
EXEC procedure_name;
Демо-база данных
Ниже приведена выборка из таблицы «Клиенты» образца базы данных Northwind:
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». который выбирает все записи из таблицы «Клиенты»:
Пример
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;
Выполните хранимую процедуру, описанную выше, следующим образом: