SQL Server için SQL Saklı Yordamlar
Saklı Prosedür nedir?
Saklı yordam, kaydedebileceğiniz hazırlanmış bir SQL kodudur, böylece kod tekrar tekrar kullanılabilir.
Bu nedenle, tekrar tekrar yazdığınız bir SQL sorgunuz varsa, bunu saklı bir prosedür olarak kaydedin ve ardından onu çalıştırmak için çağırın.
Ayrıca, saklı yordamın geçirilen parametre değerlerine göre hareket edebilmesi için parametreleri bir saklı yordama iletebilirsiniz.
Saklı Yordam Sözdizimi
CREATE PROCEDURE procedure_name
AS
sql_statement
GO;
Saklı Yordam Yürütme
EXEC procedure_name;
Demo Veritabanı
Aşağıda, Northwind örnek veritabanındaki "Müşteriler" tablosundan bir seçim bulunmaktadır:
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 |
Saklı Yordam Örneği
Aşağıdaki SQL ifadesi, "Customers" tablosundan tüm kayıtları seçen "SelectAllCustomers" adlı bir saklı yordam oluşturur:
Örnek
CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO;
Yukarıdaki saklı yordamı aşağıdaki gibi yürütün:
Örnek
EXEC SelectAllCustomers;
Tek Parametreli Saklı Yordam
Aşağıdaki SQL ifadesi, "Müşteriler" tablosundan belirli bir Şehirden Müşterileri seçen saklı bir prosedür oluşturur:
Örnek
CREATE PROCEDURE SelectAllCustomers
@City nvarchar(30)
AS
SELECT * FROM Customers WHERE
City = @City
GO;
Yukarıdaki saklı yordamı aşağıdaki gibi yürütün:
Örnek
EXEC SelectAllCustomers @City = 'London';
Çoklu Parametreli Saklı Yordam
Birden fazla parametre ayarlamak çok kolaydır. Aşağıda gösterildiği gibi her parametreyi ve veri türünü virgülle ayırarak listeleyin.
Aşağıdaki SQL ifadesi, "Müşteriler" tablosundan belirli bir Posta Koduna sahip belirli bir Şehirden Müşterileri seçen saklı bir prosedür oluşturur:
Örnek
CREATE PROCEDURE SelectAllCustomers
@City nvarchar(30), @PostalCode nvarchar(10)
AS
SELECT * FROM Customers WHERE
City = @City AND PostalCode = @PostalCode
GO;
Yukarıdaki saklı yordamı aşağıdaki gibi yürütün:
Örnek
EXEC SelectAllCustomers @City = 'London', @PostalCode = 'WA1 1DP';