Procedury składowane SQL dla SQL Server
Co to jest procedura składowana?
Procedura składowana to przygotowany kod SQL, który można zapisać, dzięki czemu kod może być wielokrotnie używany.
Więc jeśli masz zapytanie SQL, które piszesz w kółko, zapisz je jako procedurę składowaną, a następnie po prostu wywołaj je, aby je wykonać.
Można również przekazać parametry do procedury składowanej, dzięki czemu procedura składowana może działać na podstawie przekazanych wartości parametrów.
Składnia procedury składowanej
CREATE PROCEDURE procedure_name
AS
sql_statement
GO;
Wykonaj procedurę składowaną
EXEC procedure_name;
Demo bazy danych
Poniżej znajduje się wybór z tabeli „Klienci” w przykładowej bazie danych 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 |
Przykład procedury przechowywanej
Poniższa instrukcja SQL tworzy procedurę składowaną o nazwie „SelectAllCustomers”, która wybiera wszystkie rekordy z tabeli „Klienci”:
Przykład
CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO;
Wykonaj powyższą procedurę składowaną w następujący sposób:
Przykład
EXEC SelectAllCustomers;
Zapisana procedura z jednym parametrem
Poniższa instrukcja SQL tworzy procedurę składowaną, która wybiera klientów z określonego miasta z tabeli „Klienci”:
Przykład
CREATE PROCEDURE SelectAllCustomers
@City nvarchar(30)
AS
SELECT * FROM Customers WHERE
City = @City
GO;
Wykonaj powyższą procedurę składowaną w następujący sposób:
Przykład
EXEC SelectAllCustomers @City = 'London';
Zapisana procedura z wieloma parametrami
Konfiguracja wielu parametrów jest bardzo łatwa. Wystarczy wymienić każdy parametr i typ danych oddzielone przecinkiem, jak pokazano poniżej.
Poniższa instrukcja SQL tworzy procedurę składowaną, która wybiera Klientów z określonego Miasta z określonym Kodem Pocztowym z tabeli „Klienci”:
Przykład
CREATE PROCEDURE SelectAllCustomers
@City nvarchar(30), @PostalCode nvarchar(10)
AS
SELECT * FROM Customers WHERE
City = @City AND PostalCode = @PostalCode
GO;
Wykonaj powyższą procedurę składowaną w następujący sposób:
Przykład
EXEC SelectAllCustomers @City = 'London', @PostalCode = 'WA1 1DP';