Verschillen Stored Procedure en functie binnen SQL

Geschreven door: op maandag 30 september 2019

Leestijd: 2 minuten

In SQL heb je veel verschillende functionaliteiten waar je gebruik van kunt maken bij het schrijven van queries, waaronder: triggers, stored procedures, build-in functions en user defined functionts. Twee daarvan kunnen nogal op elkaar lijken, een stored procedure en een functie. Wat zijn nu de verschillen hiertussen?

Voordat we per functionaliteit een aantal verschillen opnoemen, zullen we kort omschrijven wat beide nu ook alweer zijn.

Een Stored Procedure is een set van queries die je kunt opslaan, aanroepen en hergebruiken.

Een Functie  is een query die een parameter accepteert, hiermee bepaalde taken uitvoert, zoals een berekening, en het resultaat hiervan teruggeeft. Ook deze query of set van qeuries wordt opgeslagen en is herbruikbaar.

Zoals hierboven beschreven, lijken stored procedures en functies erg op elkaar. Toch zijn er een aantal verschillen die kunnen bepalen of je in een bepaald scenarie gebruik maakt van een stored procedure of van een functie.

Parameters

Een functie moet altijd een waarde teruggeven. Dit kan een enkele waarde zijn maar dit kan ook een set zijn, bijvoorbeeld een tabel. Een stored procedure kan een waarde of set teruggeven, maar dit is niet verplicht. De stored procedure kan bijv. een tijdelijke tabel vullen met data maar hoeft deze verder niet als set terug te geven aan de aanroepende query.

Daarnaast kan een stored procedure wel een output variabele hebben, maar een functie niet. Een output variabele kan handig zijn als je meerdere waarden terugkrijgt uit een stored procedure.

Error handling

Binnen een functie is het niet mogelijk om zowel met transactions als met try catch blokkken te werken. Dit kan een overweging zijn om een keuze te maken tussen een stored procedure en een functie.

Soorten statements

Binnen een functie kun je alleen gebruik maken van een SELECT statement, niet van een INSERT/UPDATE/DELETE. Je kunt geen tabellen manipuleren binnen een functie. Binnen een stored procedure kan dit wel.
Een functie kan aangeroepen worden binnen een query, bijvoorbeeld in de WHERE statement of in een JOIN. Dit kan niet met een stored procedure.

Als laatste kun je binnen een stored procedure een functie aanroepen. Andersom kan dit niet.

Conclusie

Als je een keuze moet maken tussen een stored procedure en een functie: je kunt een stored procedure zien als een op zichzelf staand iets wat werkt kan verrichten zonder dat je daar iets van merkt of van terugkrijgt. Een functie is een functionaliteit die je aanroept die bepaalde data teruggeeft waarmee je weer verder werkt.

Wil je meer lezen over deze functies? Dat kan hier.


Andere blogartikelen

  • Overeenkomsten tussen Growth Hacking en UX design

    Geschreven door: op zondag 13 september 2020

    Laten we beginnen met wat Growth hacking is, Growth hacking zijn experimenten voor oplossingen die groeiproblemen moeten oplossen. Dit is een nieuwe marketing aanpak die met name wordt gedreven door d ...

    Bekijk het artikel »
  • B2B SEO en Geoptimaliseerde Afbeeldingen

    Geschreven door: op woensdag 12 augustus 2020

    In een tijd waarin 27% van het koopproces van B2B kopers met eigen online research wordt doorgebracht is het essentieel om een goed vindbare website te hebben. Afbeeldingen kunnen, indien geoptimalise ...

    Bekijk het artikel »
  • Prospects zoeken B2B

    Geschreven door: op woensdag 12 augustus 2020

    Het zoeken van B2B prospects is een uitdaging voor elk bedrijf. Met name kwalitatieve B2B prospects.Door vooraf onderzoek te doen naar bedrijven die voldoen aan je criteria en je marketing hierop aan ...

    Bekijk het artikel »
Bel 072 5345 888
Meer dan 40 bedrijven vertrouwen op ons
Allrig is de alles in een leverancier binnen de energie-industrie
AOC is een toonaangevend wereldwijd bedrijf actief in de verkoop van kwaliteitsharsen
ERIKS is een toonaangevende en innovatieve leverancier aan de procesindustrie en aan machinebouwers, die zowel de rol van specialist als die van brede MRO-leverancier vervult
Industrieel dienstverlener Heinen & Hopman Engineering uit Bunschoten is dé wereldwijde specialist op het gebied van klimaatbeheersing
Handicare is een internationale organisatie die ouderen helpt om hun dagelijks leven gemakkelijker te maken door het produceren van hoogwaardige trapliften
Op de hoogte blijven?

Meld u aan voor de gratis nieuwsbrief om op de hoogte te blijven van onze activiteiten