U kunt SQL-op­ge­sla­gen pro­ce­du­res gebruiken om veel­ge­bruik­te query’s en pro­ce­du­res op te slaan als co­de­blok­ken die later ge­mak­ke­lijk kunnen worden opgehaald. Ze kunnen u tijd besparen en ervoor zorgen dat u SQL-in­struc­ties niet elke keer opnieuw hoeft in te voeren wanneer u ze gebruikt.

Wat zijn SQL-op­ge­sla­gen pro­ce­du­res?

Bij het werken met SQL zijn er on­ge­twij­feld sta­te­ments die u steeds opnieuw gebruikt. Het elke keer opnieuw invoeren van complexe sta­te­ments kan u tijd kosten en de kans op fouten vergroten. Met SQL-op­ge­sla­gen pro­ce­du­res kunt u ge­mak­ke­lij­ker werken met re­gel­ma­ti­ge, complexe query’s. U kunt deze gebruiken om blokken code die u vaak gebruikt op te slaan en op te halen. Op die manier kunt u te­rug­ke­ren­de pro­ce­du­res au­to­ma­ti­se­ren en uw ge­ge­vens­be­heer ef­fi­ci­ën­ter maken.

Een voordeel van SQL-op­ge­sla­gen pro­ce­du­res is dat u vrijwel elk type statement met SQL-functies, SQL-op­drach­ten of SQL-ope­ra­to­ren kunt opslaan en vrijwel elke taak kunt uitvoeren. U kunt op­ge­sla­gen pro­ce­du­res voor de be­tref­fen­de actie maken en deze aanroepen door de PROCEDURE-naam in reguliere sta­te­ments zoals SQL UPDATE en SQL SELECT in te voegen. De functies die u met SQL-op­ge­sla­gen pro­ce­du­res kunt au­to­ma­ti­se­ren, omvatten updates, query’s, het ver­wij­de­ren van gegevens en het uitvoeren van waarden.

Tip

Leer de basis van SQL! Onze SQL-in­tro­duc­tie met voor­beel­den geeft je een snel overzicht van de be­lang­rijk­ste functies en regels van de taal.

Wat is de syntaxis van SQL-op­ge­sla­gen pro­ce­du­res?

De syntaxis van een bepaalde op­ge­sla­gen procedure hangt af van het codeblok dat u wilt opslaan en kan meer of minder complex zijn.

Hier is de syntaxis voor een een­vou­di­ge op­ge­sla­gen procedure:

CREATE PROCEDURE Procedure_name (Parameter1 file_type, Parameter2 file_type, …)
AS
BEGIN
(Code block you want to save)
END;
sql

Af­han­ke­lijk van het da­ta­ba­se­be­heer­sys­teem dat u gebruikt, kan de syntaxis er ook als volgt uitzien:

CREATE PROCEDURE Procedure_name (Parameter1 file_type, Parameter2 file_type, …)
AS
(Code block you want to save)
GO;
sql

Dit zijn de pa­ra­me­ters die hierbij een rol spelen:

  • CREATE PROCEDURE: Definieer hier de naam van uw procedure. Dit is de naam die u zult gebruiken om de code uit te voeren of in een andere in­struc­tie in te voegen. Pa­ra­me­ters omvatten de ver­schil­len­de gegevens die nodig zijn voor het codeblok, inclusief hun be­stands­ty­pe.
  • AS: Geeft het begin aan van het codeblok dat u als op­ge­sla­gen procedure wilt opslaan.
  • BEGIN + END: Markeer het begin en einde van het codeblok dat u wilt opslaan.
  • GO: Geeft het einde van het codeblok aan (heeft dezelfde functie als END).

U kunt een op­ge­sla­gen procedure uitvoeren met behulp van deze code:

EXEC Procedure_name;
sql

Wat zijn de voordelen en ge­bruiks­sce­na­rio’s van SQL-op­ge­sla­gen pro­ce­du­res?

Met SQL-op­ge­sla­gen pro­ce­du­res kunt u vrijwel elke SQL-in­struc­tie opslaan en later weer ophalen. De voordelen van op­ge­sla­gen pro­ce­du­res zijn onder meer:

  • Her­ge­bruik van code: Er zijn bepaalde SQL-op­drach­ten en -functies die u steeds opnieuw zult gebruiken in uw database. Door een­vou­di­ge en complexe in­struc­ties op te slaan, kunt u ze her­haal­de­lijk gebruiken zonder dat u de code telkens opnieuw hoeft in te voeren.
  • Ver­een­vou­digd werken met databases: bij complexe taken splitsen op­ge­sla­gen pro­ce­du­res grote, complexe be­wer­kin­gen op in ver­schil­len­de kleinere pro­ce­du­res. Co­de­blok­ken worden behandeld als modules die kunnen worden opgenomen in de in­struc­tie waaraan u werkt.
  • Meer ef­fi­ci­ën­tie, betere pres­ta­ties: Door co­de­blok­ken op te slaan, kunt u ge­mak­ke­lij­ker SQL-in­struc­ties maken en de pres­ta­ties van grote databases ver­be­te­ren.
  • Meer vei­lig­heid: door mach­ti­gin­gen toe te wijzen aan op­ge­sla­gen pro­ce­du­res wordt ervoor gezorgd dat gevoelige gegevens alleen met toe­stem­ming kunnen worden opgehaald of ge­raad­pleegd.

Enkele prak­ti­sche toe­pas­sin­gen voor SQL-op­ge­sla­gen pro­ce­du­res uit ver­schil­len­de sectoren zijn onder meer:

  • Au­to­ma­ti­se­ring van be­stel­pro­ces­sen en bijwerken van klant­ge­ge­vens
  • Mo­ni­to­ring en controle van verdachte fi­nan­ci­ë­le trans­ac­ties of be­re­ke­ning van ren­te­ta­rie­ven
  • Au­to­ma­tisch aan­bie­din­gen genereren op basis van klant­ge­ge­vens, koop­ge­drag, or­der­vo­lu­me en regio
  • Berekenen van com­mis­sies voor me­de­wer­kers op basis van pres­ta­ties
  • Fi­nan­ci­ë­le rapporten opstellen en trans­ac­ties boeken
  • Het volgen, con­tro­le­ren en syn­chro­ni­se­ren van voorraad en bin­nen­ko­men­de be­stel­lin­gen

Voor­beel­den van op­ge­sla­gen SQL-pro­ce­du­res

We gaan nu kijken naar twee voor­beel­den van SQL-op­ge­sla­gen pro­ce­du­res.

Alle klanten ophalen

Stel dat u alle klant­ge­ge­vens uit een tabel met de naam ‘Klanten’ wilt ophalen. Dat zou er als volgt uitzien:

CREATE PROCEDURE SelectAllCustomers
AS
BEGIN
SELECT * FROM Customers
END;
sql

Be­stel­lin­gen uit één stad se­lec­te­ren

Stel nu dat u alle be­stel­lin­gen uit één stad wilt ophalen uit een tabel met de naam ‘Be­stel­lin­gen’:

CREATE PROCEDURE SelectAllOrdersBristol
AS
BEGIN
SELECT * FROM Orders WHERE City = 'Bristol'
END;
sql

Zijn er al­ter­na­tie­ven voor SQL-op­ge­sla­gen pro­ce­du­res?

Er zijn ver­schil­len­de al­ter­na­tie­ven voor SQL-op­ge­sla­gen pro­ce­du­res met een ver­ge­lijk­ba­re functie. Deze omvatten:

  • UDF (User Defined Function): Met UDF’s kunt u uw eigen functies maken en opslaan met behulp van het trefwoord CREATE FUNCTION. Hierdoor kunt u complexe query’s als vooraf ge­de­fi­ni­eer­de functies in SQL-in­struc­ties in­te­gre­ren, zonder dat u het hele codeblok hoeft in te voeren.
  • VIEWS: Met VIEWS kunt u lege, virtuele tabellen maken voor het ana­ly­se­ren van records met vooraf ge­de­fi­ni­eer­de pa­ra­me­ters. Net als UDF’s en op­ge­sla­gen pro­ce­du­res kunt u VIEWS als element in SQL-in­struc­ties invoegen.
Ga naar hoofdmenu