Op SQL opgeslagen procedures voor SQL Server
Wat is een opgeslagen procedure?
Een opgeslagen procedure is een voorbereide SQL-code die u kunt opslaan, zodat de code steeds opnieuw kan worden gebruikt.
Dus als je een SQL-query hebt die je steeds opnieuw schrijft, sla deze dan op als een opgeslagen procedure en roep hem dan op om hem uit te voeren.
U kunt ook parameters doorgeven aan een opgeslagen procedure, zodat de opgeslagen procedure kan werken op basis van de parameterwaarde(n) die wordt doorgegeven.
Opgeslagen proceduresyntaxis
CREATE PROCEDURE procedure_name
AS
sql_statement
GO;
Een opgeslagen procedure uitvoeren
EXEC procedure_name;
Demodatabase
Hieronder vindt u een selectie uit de tabel "Klanten" in de voorbeelddatabase van Northwind:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 |
Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
Voorbeeld van opgeslagen procedure
Met de volgende SQL-instructie wordt een opgeslagen procedure gemaakt met de naam "SelectAllCustomers" die alle records uit de tabel "Customers" selecteert:
Voorbeeld
CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO;
Voer de bovenstaande opgeslagen procedure als volgt uit:
Voorbeeld
EXEC SelectAllCustomers;
Opgeslagen procedure met één parameter
Met de volgende SQL-instructie wordt een opgeslagen procedure gemaakt die klanten uit een bepaalde stad selecteert in de tabel "Klanten":
Voorbeeld
CREATE PROCEDURE SelectAllCustomers
@City nvarchar(30)
AS
SELECT * FROM Customers WHERE
City = @City
GO;
Voer de bovenstaande opgeslagen procedure als volgt uit:
Voorbeeld
EXEC SelectAllCustomers @City = 'London';
Opgeslagen procedure met meerdere parameters
Het instellen van meerdere parameters is heel eenvoudig. Vermeld gewoon elke parameter en het gegevenstype, gescheiden door een komma, zoals hieronder wordt weergegeven.
De volgende SQL-instructie maakt een opgeslagen procedure aan die klanten selecteert uit een bepaalde stad met een bepaalde postcode uit de tabel "Klanten":
Voorbeeld
CREATE PROCEDURE SelectAllCustomers
@City nvarchar(30), @PostalCode nvarchar(10)
AS
SELECT * FROM Customers WHERE
City = @City AND PostalCode = @PostalCode
GO;
Voer de bovenstaande opgeslagen procedure als volgt uit:
Voorbeeld
EXEC SelectAllCustomers @City = 'London', @PostalCode = 'WA1 1DP';