logo

SQL saugomos procedūros

SQL saugoma procedūra yra SQL užklausų grupė, kurią galima išsaugoti ir pakartotinai naudoti kelis kartus. Tai labai naudinga, nes sumažina SQL užklausų perrašymo poreikį. Tai padidina duomenų bazių valdymo efektyvumą, pakartotinį naudojimą ir saugumą.

Vartotojai taip pat gali perduoti parametrus saugomoms procedūroms, kad išsaugota procedūra galėtų veikti pagal perduotas parametrų reikšmes.

Išsaugotos procedūros sukuriamos vienai ar kelioms atlikti DML operacijų duomenų bazėje. Tai ne kas kita, kaip grupė SQL teiginiai kuri priima tam tikrą įvestį parametrų pavidalu, atlieka tam tikrą užduotį ir gali grąžinti reikšmę arba ne.



Sintaksė

Dvi svarbios sintaksės, naudojamos naudojant saugomas procedūras SQL:

Sintaksė, skirta išsaugoti procedūrai sukurti

KURTI PROCEDŪRĄ procedūros_pavadinimas
(parametras1 duomenų_tipas, 2 parametro duomenų_tipas, …)
AS
PRADĖTI
— Vykdytini SQL sakiniai
GALAS

Sintaksė išsaugotai procedūrai vykdyti

EXEC procedūros_pavadinimas parametro1_vertė, parametro2_vertė, ..

npm valyti talpyklą

Parametras

Svarbiausia dalis yra parametrai. Parametrai naudojami reikšmėms perduoti į procedūrą. Yra įvairių tipų parametrai, kurie yra tokie:

  1. PRADŽIA: Tai yra tai, kas tiesiogiai vykdoma arba galime sakyti, kad tai yra vykdomoji dalis.
  2. GALAS: Iki to kodas bus vykdomas.

SQL saugomos procedūros pavyzdys

Pažvelkime į saugomos procedūros SQL pavyzdį, kad jį geriau suprastume.

Įsivaizduokite duomenų bazę pavadinimu SampleDB, lentelę Klientai su kai kuriais pavyzdiniais duomenimis ir saugomą procedūrą pavadinimu GetCustomersByCountry.

Išsaugota procedūra paima parametrą Šalis ir iš lentelės Klientai pateikia klientų sąrašą, atitinkantį nurodytą šalį. Galiausiai, saugoma procedūra atliekama naudojant parametrą Šri Lanka, kad būtų galima gauti klientų iš Šri Lankos sąrašą.

Užklausa:

-- 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';>

Pastaba: Norėdami sukurti duomenų bazę, turėsite įsitikinti, kad vartotojo abonementas turi reikiamas teises. Galite pabandyti prisijungti kaip kitas vartotojas, turintis administratoriaus teises, arba susisiekti su duomenų bazės administratoriumi, kad suteiktų reikiamas teises savo vartotojo abonementui. Jei naudojate debesyje pagrįstą duomenų bazės paslaugą, įsitikinkite, kad teisingai sukonfigūravote vartotojo abonementą ir jos leidimus.

Išvestis:

Kliento vardas Kontaktinis vardas
Naveenas Tulasi

Svarbūs dalykai apie SQL saugomas procedūras

  • Išsaugota procedūra yra paruoštas SQL kodas, kurį galite išsaugoti, kad jį būtų galima naudoti vėl ir vėl.
  • Išsaugotos procedūros leidžia pakartotinai naudojamą kodą išsaugoti duomenų bazėje ir paleisti iš ten, o ne iš kliento. Tai suteikia labiau modulinį duomenų bazės projektavimo metodą.
  • Kadangi saugomos procedūros yra kompiliuojamos ir saugomos duomenų bazėje, jos yra labai efektyvios. „SQL Server“ vieną kartą sukompiliuoja kiekvieną saugomą procedūrą ir iš naujo panaudoja vykdymo planą. Tai lemia milžinišką našumo padidėjimą, kai pakartotinai iškviečiamos saugomos procedūros.
  • Saugomos procedūros užtikrina geresnę jūsų duomenų apsaugą. Vartotojai gali vykdyti saugomą procedūrą, nereikalaujant tiesiogiai vykdyti nė vieno teiginio. Todėl vartotojui gali būti suteiktas leidimas vykdyti saugomą procedūrą, neturėdamas jokių teisių pagrindinėse lentelėse.
  • Išsaugotos procedūros gali sumažinti tinklo srautą ir delsą, taip padidindamos programos našumą. Vienas iškvietimas į saugomą procedūrą gali įvykdyti daug teiginių.
  • Išsaugotos procedūros geriau palaiko klaidų tvarkymą.
  • Išsaugotos procedūros gali būti naudojamos norint teikti pažangias duomenų bazės funkcijas, pvz., keisti duomenis lentelėse ir įtraukti šiuos pakeitimus į duomenų bazės operacijas.