Veritabanı uygulamalarında, belirli işlemleri tekrar tekrar gerçekleştirmek gerekebilir. Bu tür işlemleri veritabanında saklamak ve sadece ihtiyaç duyulduğunda çağırmak, veritabanı yönetimini daha verimli hale getirir. MSSQL'de bu tür işlemler için kullan
MSSQL'de Stored Procedure Nedir? Basit Örnek

Veritabanı uygulamalarında, belirli işlemleri tekrar tekrar gerçekleştirmek gerekebilir.
Bu tür işlemleri veritabanında saklamak ve sadece ihtiyaç duyulduğunda çağırmak, veritabanı yönetimini daha verimli hale getirir.
MSSQL'de bu tür işlemler için kullanılan yapılar Stored Procedure (Saklı Yordamlar) olarak bilinir.
Stored Procedure, SQL komutlarının bir araya getirildiği ve veritabanı üzerinde daha verimli bir şekilde çalıştırılmasını sağlayan hazır fonksiyonlardır.
Teknik Açıklama
Stored Procedure, bir veya birden fazla SQL komutunu gruplandırarak, bu işlemleri tek bir komutla çalıştırabilmenizi sağlar.
Bu prosedürler, veritabanı performansını artırmak, güvenliği sağlamak ve kodun daha düzenli olmasını sağlamak için kullanılır.
Stored Procedure'ün Avantajları
-
Performans: Prosedürler, SQL Server tarafından derlenir ve optimize edilir, bu da daha hızlı çalışmasını sağlar.
-
Güvenlik: Kullanıcılar, prosedürleri çalıştırmak için gerekli olan izinlere sahip olabilir, ancak doğrudan tabloya erişemezler.
-
Kod Tekrarı: Aynı işlemi birden fazla yerde kullanmak için prosedürleri tekrar tekrar çağırabilirsiniz.
-
Hata Azaltma: Kodun merkezi bir yerde tanımlanması, hata yapma olasılığını azaltır.
Stored Procedure Oluşturma
Stored Procedure oluşturmak için CREATE PROCEDURE
komutunu kullanırız. Aşağıda basit bir stored procedure örneği verilmiştir.
CREATE PROCEDURE GetEmployeeDetails
@EmployeeID INT
AS
BEGIN
SELECT Name, Position, Department
FROM Employees
WHERE EmployeeID = @EmployeeID;
END
Bu örnekte, GetEmployeeDetails
adında bir prosedür oluşturduk. Bu prosedür, bir EmployeeID
alır ve Employees
tablosundan o çalışana ait ismi, pozisyonunu ve departmanını döner.
Stored Procedure Çağırma
Oluşturduğumuz stored procedure'ü çağırmak için EXEC
komutunu kullanırız. Örneğin:
EXEC GetEmployeeDetails @EmployeeID = 1;
Bu komut, EmployeeID
'si 1 olan çalışanın bilgilerini döndürecektir.
Küçük Bir Kod Örneği
Aşağıda, MSSQL'de bir stored procedure oluşturulması, çağrılması ve parametrelerin nasıl geçileceğine dair bir örnek yer almaktadır.
1. Stored Procedure Oluşturma:
CREATE PROCEDURE AddNewEmployee
@Name NVARCHAR(100),
@Position NVARCHAR(100),
@Department NVARCHAR(100)
AS
BEGIN
INSERT INTO Employees (Name, Position, Department)
VALUES (@Name, @Position, @Department);
END
Bu prosedür, yeni bir çalışan eklemek için kullanılır.
2. Stored Procedure Çağırma:
EXEC AddNewEmployee @Name = 'Ali', @Position = 'Developer', @Department = 'IT';
Bu komut, yeni bir çalışanı Employees
tablosuna ekler.
3. Prosedür Parametreleri ve Çıktılar:
Stored Procedure'ler, hem giriş (input) hem de çıkış (output) parametreleri alabilir. Örneğin, bir prosedür aracılığıyla veritabanından veri almak için OUTPUT
parametresi kullanabilirsiniz.
CREATE PROCEDURE GetEmployeeByID
@EmployeeID INT,
@EmployeeName NVARCHAR(100) OUTPUT
AS
BEGIN
SELECT @EmployeeName = Name
FROM Employees
WHERE EmployeeID = @EmployeeID;
END
Çıktı parametreleri kullanılarak, veriyi sorgulayıp doğrudan kullanıcıya döndürebilirsiniz.
4. Stored Procedure Kullanımı C# ile:
Aşağıda, C# kullanarak stored procedure'ü nasıl çalıştıracağımıza dair bir örnek bulunmaktadır.
using System;
using System.Data;
using System.Data.SqlClient;
class Program
{
static void Main()
{
string connectionString = "your_connection_string_here";
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand("GetEmployeeDetails", connection);
command.CommandType = CommandType.StoredProcedure;
// Parameter ekleyelim
command.Parameters.AddWithValue("@EmployeeID", 1);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine($"{reader["Name"]}, {reader["Position"]}, {reader["Department"]}");
}
}
}
}
Bu örnekte, C# ile SQL Server'da oluşturduğumuz stored procedure'ü çalıştırarak, verileri okuyoruz.
Stored Procedure, özellikle şu durumlarda faydalıdır:
-
Veri Manipülasyonu: Karmaşık veri işlemlerini, tek bir prosedürle veritabanı üzerinde yapabilirsiniz.
-
Güvenlik: Kullanıcıların doğrudan veri tabanına erişmeden sadece prosedürleri çalıştırmalarını sağlayabilirsiniz.
-
Veritabanı Performansı: Tekrarlayan sorguların optimize edilmesi ve derlenmiş prosedürlerin kullanılması ile veritabanı performansını artırabilirsiniz.
-
Veri Doğrulama: Veritabanında yapılan veri doğrulama işlemleri, doğrudan SQL'de yapılabilir.
MSSQL'de Stored Procedure kullanmak, veritabanı işlemlerini merkezi hale getirir ve daha güvenli, sürdürülebilir bir yapıya kavuşturur.