Saklı yordamlar

SQL Server'da Fonksiyonlar ve Saklı Yordamlar Yazma

Meghan Kwartler

IT Consultant

Saklı yordam (stored procedure) nedir?

Nedir?

Şunları yapan yordamlar:

  • Girdi parametreleri alır
  • İşlemler yapar (EXECUTE SELECT, INSERT, UPDATE, DELETE ve diğer SP ifadeleri)
  • Durum döndürür (başarı veya hata)
  • Çıktı parametreleri döndürür
SQL Server'da Fonksiyonlar ve Saklı Yordamlar Yazma

Neden saklı yordam kullanılır?

Neden?

  • Çalışma süresini azaltabilir
  • Ağ trafiğini azaltabilir
  • Modüler programlamaya izin verir
  • Güvenliği artırır
SQL Server'da Fonksiyonlar ve Saklı Yordamlar Yazma

Farkları neler?

UDF'ler

  • Değer döndürmek zorunda
    • Tablo döndüren olabilir
  • Gömülü SELECT ile çalıştırma mümkün
  • Çıktı parametresi yok
  • INSERT, UPDATE, DELETE yok
  • SP çalıştıramaz
  • Hata işleme yok

SP'ler

  • Değer döndürmek isteğe bağlı
    • Tablo döndüren yok
  • SELECT içinde gömülü çalıştırılamaz
  • Çıktı parametreleri ve durum döndürür
  • INSERT, UPDATE, DELETE serbest
  • Fonksiyon ve SP çalıştırabilir
  • TRY...CATCH ile hata işleme
SQL Server'da Fonksiyonlar ve Saklı Yordamlar Yazma

OUTPUT parametresiyle CREATE PROCEDURE

-- İlk dört kod satırı
-- SP adı benzersiz olmalı 
CREATE PROCEDURE dbo.cuspGetRideHrsOneDay 
    @DateParm date,
    @RideHrsOut numeric OUTPUT
AS
.......
SQL Server'da Fonksiyonlar ve Saklı Yordamlar Yazma

OUTPUT parametresiyle CREATE PROCEDURE

CREATE PROCEDURE dbo.cuspGetRideHrsOneDay
    @DateParm date,
    @RideHrsOut numeric OUTPUT
AS
SET NOCOUNT ON
BEGIN
SELECT 
  @RideHrsOut = SUM(
    DATEDIFF(second, PickupDate, DropoffDate)
  )/ 3600
FROM YellowTripData
WHERE CONVERT(date, PickupDate) = @DateParm
RETURN
END;
SQL Server'da Fonksiyonlar ve Saklı Yordamlar Yazma

Çıktı parametreleri vs. döndürülen değerler

Çıktı parametreleri

  • Herhangi bir veri türü olabilir
  • SP başına birden fazla tanımlanabilir
  • Tablo türünde parametre olamaz

Döndürülen değer

  • Başarı veya hatayı belirtmek için kullanılır
  • Yalnızca tamsayı veri türü
  • 0 başarıyı, sıfır dışı hata olduğunu belirtir
SQL Server'da Fonksiyonlar ve Saklı Yordamlar Yazma

CREATE PROCEDURE yazmaya hazırsın!

SQL Server'da Fonksiyonlar ve Saklı Yordamlar Yazma

Preparing Video For Download...