Saklı yordam nedir?
Saklı yordam nedir? Nasıl çalışırlar? Bir saklı yordamın yapısı nedir (her birinin saklı yordam olması zorunludur)?
281
3
Saklı yordam nedir? Nasıl çalışırlar? Bir saklı yordamın yapısı nedir (her birinin saklı yordam olması zorunludur)?
Saklı yordamlar, birkaç şekilde yürütülebilen bir SQL deyimleri grubudur. Başlıca DBM'lerin çoğu saklı yordamları destekler; ancak hepsi desteklemez. Ayrıntılar için kendi DBMS yardım belgelerinizi doğrulamanız gerekecektir. En çok SQL Server'a aşina olduğum için örnek olarak onu kullanacağım.
Bir saklı yordam oluşturmak için söz dizimi oldukça basittir:
Mesela:
Saklı yordamların bir avantajı, veri erişim mantığını tek bir yerde merkezileştirebilmeniz ve böylece DBA'nın optimize etmesinin kolay olmasıdır. Saklı yordamlar aynı zamanda bir saklı yordama çalıştırma hakları verebileceğiniz ancak kullanıcının temel tablolar üzerinde okuma/yazma izinlerine sahip olması gerekmeyeceği için bir güvenlik avantajına da sahiptir. Bu, SQL enjeksiyonuna karşı iyi bir ilk adımdır.
Saklı yordamların, temel olarak temel CRUD işleminizle ilişkili bakım gibi dezavantajları vardır. Diyelim ki her tablo için bir Insert, Update, Delete ve birincil anahtara dayalı en az bir select işleminiz var, bu da her tablonun 4 yordamı olacağı anlamına gelir. Şimdi 400 tablodan oluşan makul büyüklükte bir veritabanı alın ve 1600 prosedürünüz olsun! Ve bu, muhtemelen yapacağınız kopyalara sahip olmadığınızı varsayar.
Temel CRUD işlemlerinizi otomatik olarak oluşturmak için bir ORM veya başka bir yöntem kullanmanın tonlarca değeri vardır.
Saklı yordam, özel bir görevi gerçekleştirmek için kullanılan önceden derlenmiş SQL deyimleri kümesidir.
Örnek: Eğer bir
Çalışan
tablom varsaİlk olarak
Employee
tablosunu alıyorum:Prosedürü SQL Server üzerinde çalıştırmak için:
İkinci olarak, değeri Çalışan Tablosuna ekliyorum
SQL Server üzerinde parametrelendirilmiş prosedürü çalıştırmak için:
Örnek:
@Name Varchar(30)
Çalışan
tablosunda
Adısütununun boyutu
varchar(30)` olmalıdır.Genel olarak, bir saklı yordam bir "SQL İşlevi." dir:
Bu T-SQL odaklı bir örnektir. Saklı yordamlar çoğu SQL deyimini çalıştırabilir, skaler ve tablo tabanlı değerler döndürebilir ve SQL enjeksiyon saldırılarını önledikleri için daha güvenli olarak kabul edilirler.