Een opgeslagen procedure in SQL is een groep SQL-query's die meerdere keren kan worden opgeslagen en hergebruikt. Het is erg handig omdat het de noodzaak voor het herschrijven van SQL-query's vermindert. Het verbetert de efficiëntie, herbruikbaarheid en beveiliging van databasebeheer.
Gebruikers kunnen ook parameters doorgeven aan opgeslagen procedures, zodat de opgeslagen procedure kan reageren op de doorgegeven parameterwaarden.
Opgeslagen procedures worden gemaakt om een of meer procedures uit te voeren DML bewerkingen op de database. Het is niets anders dan een groep SQL-instructies dat enige invoer in de vorm van parameters accepteert, een taak uitvoert en al dan niet een waarde retourneert.
Syntaxis
Twee belangrijke syntaxis voor het gebruik van opgeslagen procedures in SQL zijn:
Syntaxis voor het maken van een opgeslagen procedure
MAAK PROCEDURE procedurenaam
(parameter1 gegevenstype, parameter2 gegevenstype, …)
ALS
BEGINNEN
— Uit te voeren SQL-instructies
EINDE
Syntaxis voor het uitvoeren van de opgeslagen procedure
EXEC procedurenaam parameter1_waarde, parameter2_waarde, ..
Parameter
Het belangrijkste onderdeel zijn de parameters. Parameters worden gebruikt om waarden door te geven aan de procedure. Er zijn verschillende soorten parameters, namelijk:
- BEGINNEN: Dit is wat direct wordt uitgevoerd of we kunnen zeggen dat het een uitvoerbaar onderdeel is.
- EINDE: Tot dit punt wordt de code uitgevoerd.
Voorbeeld van opgeslagen SQL-procedure
Laten we eens kijken naar een voorbeeld van Stored Procedure in SQL om het beter te begrijpen.
Stel je een database voor met de naam SampleDB, een tabel met de naam Customers met enkele voorbeeldgegevens en een opgeslagen procedure met de naam GetCustomersByCountry.
De opgeslagen procedure gebruikt de parameter Land en retourneert een lijst met klanten uit de tabel Klanten die overeenkomt met het opgegeven land. Tenslotte wordt de opgeslagen procedure uitgevoerd met de parameter Sri Lanka om de lijst met klanten uit Sri Lanka op te halen.
Vraag:
-- 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';>
Opmerking: U moet ervoor zorgen dat het gebruikersaccount over de benodigde rechten beschikt om een database te maken. U kunt proberen in te loggen als een andere gebruiker met beheerdersrechten of contact opnemen met de databasebeheerder om de benodigde rechten aan uw gebruikersaccount te verlenen. Als u een cloudgebaseerde databaseservice gebruikt, zorg er dan voor dat u het gebruikersaccount en de bijbehorende machtigingen correct hebt geconfigureerd.
Uitgang:
| Klantnaam | contactnaam |
|---|---|
| Naveen | Tulasi |
Belangrijke punten over opgeslagen SQL-procedures
- Een opgeslagen procedure is een voorbereide SQL-code die u kunt opslaan, zodat de code steeds opnieuw kan worden gebruikt.
- Opgeslagen procedures zorgen ervoor dat code die herhaaldelijk wordt gebruikt, in de database kan worden opgeslagen en van daaruit kan worden uitgevoerd, in plaats van vanaf de client. Dit biedt een meer modulaire benadering van databaseontwerp.
- Omdat opgeslagen procedures worden gecompileerd en opgeslagen in de database, zijn ze zeer efficiënt. SQL Server compileert elke opgeslagen procedure één keer en gebruikt vervolgens het uitvoeringsplan opnieuw. Dit leidt tot enorme prestatieverbeteringen wanneer opgeslagen procedures herhaaldelijk worden aangeroepen.
- Opgeslagen procedures zorgen voor een betere beveiliging van uw gegevens. Gebruikers kunnen een opgeslagen procedure uitvoeren zonder dat ze een van de instructies rechtstreeks hoeven uit te voeren. Daarom kan aan een gebruiker toestemming worden verleend om een opgeslagen procedure uit te voeren zonder enige machtiging voor de onderliggende tabellen.
- Opgeslagen procedures kunnen het netwerkverkeer en de latentie verminderen, waardoor de applicatieprestaties worden verbeterd. Met één enkele aanroep van een opgeslagen procedure kunnen veel instructies worden uitgevoerd.
- Opgeslagen procedures bieden betere ondersteuning voor foutafhandeling.
- Opgeslagen procedures kunnen worden gebruikt om geavanceerde databasefunctionaliteit te bieden, zoals het wijzigen van gegevens in tabellen en het inkapselen van deze wijzigingen in databasetransacties.