SQL Server'da Fonksiyon ve Stored Procedure

Bir süredir Fonksiyonları ve Saklı Yordamları öğreniyorum ama neden ve ne zaman bir fonksiyon veya saklı yordam kullanmam gerektiğini bilmiyorum. Bana aynı görünüyorlar, belki de bu konuda biraz acemi olduğum içindir.

Biri bana nedenini söyleyebilir mi?

Çözüm

Fonksiyonlar hesaplanan değerlerdir ve SQL Server'da kalıcı çevresel değişiklikler gerçekleştiremezler (yani INSERT veya UPDATE deyimlerine izin verilmez).

Bir fonksiyon, skaler bir değer döndürüyorsa SQL deyimlerinde satır içi olarak kullanılabilir veya bir sonuç kümesi döndürüyorsa birleştirilebilir.

Cevabı özetleyen yorumlardan dikkat çeken bir nokta. Teşekkürler @Sean K Anderson:

Fonksiyonlar, bir değer döndürmeleri gerektiği ve parametre olarak aldıkları verileri değiştiremeyecekleri için bilgisayar bilimi tanımına uyar

(argümanlar). Fonksiyonların herhangi bir şeyi değiştirmesine izin verilmez. en az bir parametreye sahiptir ve bir değer döndürmelidir. Depolanmış procs parametreye sahip olmak zorunda değildir, veritabanı nesnelerini değiştirebilir, ve bir değer döndürmek zorunda değildir.

Yorumlar (12)

Diğer SQL deyimlerinde kullanılmak üzere bir değer hesaplamak ve döndürmek istediğinizde kullanıcı tanımlı bir işlev yazın; bunun yerine muhtemelen karmaşık bir SQL deyimleri kümesini gruplamak istediğinizde bir saklı yordam yazın. Sonuçta bunlar oldukça farklı iki kullanım durumudur!

Yorumlar (1)

Neyi ne zaman kullanacağınıza karar vermek için aşağıdaki noktalar yardımcı olabilir

  1. Saklı yordamlar bir tablo değişkeni döndüremez, oysa işlev bunu yapabilir.

  2. Sunucu ortamı parametrelerini değiştirmek için saklı yordamları kullanabilirsiniz, ancak fonksiyonları kullanarak bunu yapamazsınız.

Şerefe

Yorumlar (0)