Збережена процедура в SQL — це група запитів SQL, які можна зберігати та повторно використовувати кілька разів. Це дуже корисно, оскільки зменшує потребу в переписуванні запитів SQL. Це підвищує ефективність, багаторазове використання та безпеку в управлінні базами даних.
Користувачі також можуть передавати параметри збереженим процедурам, щоб збережена процедура могла діяти на основі переданих значень параметрів.
Збережені процедури створюються для виконання однієї або кількох DML операції з базою даних. Це не що інше, як група Оператори SQL який приймає деякі вхідні дані у вигляді параметрів, виконує певне завдання та може повертати або не повертати значення.
Синтаксис
Два важливі синтаксиси для використання збережених процедур у SQL:
Синтаксис для створення збереженої процедури
CREATE PROCEDURE назва процедури
(параметр1 тип_даних, параметр2 тип_даних, …)
AS
ПОЧАТИ
— Інструкції SQL для виконання
КІНЕЦЬ
Синтаксис для виконання збереженої процедури
EXEC назва_процедури параметр1_значення, параметр2_значення, ..
Параметр
Найважливіша частина - це параметри. Параметри використовуються для передачі значень у процедуру. Існують різні типи параметрів, а саме:
- ПОЧАТОК: Це те, що безпосередньо виконує або, можна сказати, що це виконувана частина.
- КІНЕЦЬ: До цього код буде виконано.
Приклад збереженої процедури SQL
Давайте розглянемо приклад збереженої процедури в SQL, щоб краще її зрозуміти.
Уявіть собі базу даних під назвою SampleDB, таблицю під назвою Customers із зразками даних і збережену процедуру під назвою GetCustomersByCountry.
Збережена процедура приймає параметр Country і повертає список клієнтів із таблиці Customers, який відповідає вказаній країні. Нарешті, збережена процедура виконується з параметром Sri Lanka, щоб отримати список клієнтів із Шрі-Ланки.
Запит:
-- Create a new database named 'SampleDB' CREATE DATABASE SampleDB; -- Switch to the new database USE SampleDB; -- Create a new table named 'Customers' CREATE TABLE Customers ( CustomerID INT PRIMARY KEY, CustomerName VARCHAR(50), ContactName VARCHAR(50), Country VARCHAR(50) ); -- Insert some sample data into the Customers table INSERT INTO Customers (CustomerID, CustomerName, ContactName, Country) VALUES (1, 'Shubham', 'Thakur', 'India'), (2, 'Aman ', 'Chopra', 'Australia'), (3, 'Naveen', 'Tulasi', 'Sri lanka'), (4, 'Aditya', 'Arpan', 'Austria'), (5, 'Nishant. Salchichas S.A.', 'Jain', 'Spain'); -- Create a stored procedure named 'GetCustomersByCountry' CREATE PROCEDURE GetCustomersByCountry @Country VARCHAR(50) AS BEGIN SELECT CustomerName, ContactName FROM Customers WHERE Country = @Country; END; -- Execute the stored procedure with parameter 'Sri lanka' EXEC GetCustomersByCountry @Country = 'Sri lanka';>
Примітка: Вам потрібно буде переконатися, що обліковий запис користувача має необхідні привілеї для створення бази даних. Ви можете спробувати увійти як інший користувач із правами адміністратора або зв’язатися з адміністратором бази даних, щоб надати необхідні права для вашого облікового запису користувача. Якщо ви використовуєте хмарну службу бази даних, переконайтеся, що ви правильно налаштували обліковий запис користувача та його дозволи.
Вихід:
| Ім'я клієнта | Контактна Особа |
|---|---|
| Навін | Туласі |
Важливі моменти про збережені процедури SQL
- Збережена процедура — це підготовлений код SQL, який можна зберегти, щоб код можна було використовувати знову і знову.
- Збережені процедури дозволяють зберігати код, який багаторазово використовується, у базі даних і запускати звідти, а не з клієнта. Це забезпечує більш модульний підхід до проектування бази даних.
- Оскільки збережені процедури компілюються та зберігаються в базі даних, вони дуже ефективні. SQL Server компілює кожну збережену процедуру один раз, а потім повторно використовує план виконання. Це призводить до надзвичайного підвищення продуктивності, коли збережені процедури викликаються неодноразово.
- Збережені процедури забезпечують кращий захист ваших даних. Користувачі можуть виконувати збережену процедуру без необхідності безпосереднього виконання будь-яких операторів. Таким чином, користувачеві можна надати дозвіл на виконання збереженої процедури, не маючи жодних дозволів на базові таблиці.
- Збережені процедури можуть зменшити мережевий трафік і затримку, підвищуючи продуктивність програми. Один виклик збереженої процедури може виконати багато операторів.
- Збережені процедури мають кращу підтримку для обробки помилок.
- Збережені процедури можна використовувати для надання розширених функцій бази даних, таких як зміна даних у таблицях та інкапсуляція цих змін у транзакції бази даних.