SQL -gestoorde prosedures vir SQL Server
Wat is 'n gestoorde prosedure?
'n Gestoorde prosedure is 'n voorbereide SQL-kode wat jy kan stoor, sodat die kode oor en oor hergebruik kan word.
So as jy 'n SQL-navraag het wat jy oor en oor skryf, stoor dit as 'n gestoorde prosedure, en roep dit dan net om dit uit te voer.
Jy kan ook parameters na 'n gestoorde prosedure deurgee, sodat die gestoorde prosedure kan optree op grond van die parameterwaarde(s) wat geslaag word.
Gestoorde prosedure-sintaksis
CREATE PROCEDURE procedure_name
AS
sql_statement
GO;
Voer 'n gestoorde prosedure uit
EXEC procedure_name;
Demo-databasis
Hieronder is 'n keuse uit die "Klante"-tabel in die Noordewind-voorbeelddatabasis:
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 gestoorde prosedure
Die volgende SQL-stelling skep 'n gestoorde prosedure genaamd "SelectAllCustomers" wat alle rekords uit die "Customers"-tabel kies:
Voorbeeld
CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO;
Voer die gestoorde prosedure hierbo soos volg uit:
Voorbeeld
EXEC SelectAllCustomers;
Gestoorde prosedure met een parameter
Die volgende SQL-stelling skep 'n gestoorde prosedure wat kliënte van 'n spesifieke stad uit die "Klante"-tabel kies:
Voorbeeld
CREATE PROCEDURE SelectAllCustomers
@City nvarchar(30)
AS
SELECT * FROM Customers WHERE
City = @City
GO;
Voer die gestoorde prosedure hierbo soos volg uit:
Voorbeeld
EXEC SelectAllCustomers @City = 'London';
Gestoorde prosedure met veelvuldige parameters
Dit is baie maklik om verskeie parameters op te stel. Lys net elke parameter en die datatipe geskei deur 'n komma soos hieronder getoon.
Die volgende SQL-stelling skep 'n gestoorde prosedure wat klante van 'n spesifieke stad met 'n spesifieke poskode uit die "Klante"-tabel kies:
Voorbeeld
CREATE PROCEDURE SelectAllCustomers
@City nvarchar(30), @PostalCode nvarchar(10)
AS
SELECT * FROM Customers WHERE
City = @City AND PostalCode = @PostalCode
GO;
Voer die gestoorde prosedure hierbo soos volg uit:
Voorbeeld
EXEC SelectAllCustomers @City = 'London', @PostalCode = 'WA1 1DP';