YÜKLENİYOR...

MSSQL'de Stored Procedure Nedir? Basit Örnek

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

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ı

  1. Performans: Prosedürler, SQL Server tarafından derlenir ve optimize edilir, bu da daha hızlı çalışmasını sağlar.

  2. Güvenlik: Kullanıcılar, prosedürleri çalıştırmak için gerekli olan izinlere sahip olabilir, ancak doğrudan tabloya erişemezler.

  3. Kod Tekrarı: Aynı işlemi birden fazla yerde kullanmak için prosedürleri tekrar tekrar çağırabilirsiniz.

  4. 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.