Tavsiye, 2024

Editörün Seçimi

Tetik ve Prosedür Arasındaki Fark

Tetikleyici ve Prosedür Gelişmiş SQL Bileşenidir. Tetikleyici ve Prosedür her ikisi de yürütülmesi sırasında belirli bir görevi yerine getirir. Tetikleyici ve Prosedür arasındaki temel fark, Tetikleyicinin bir olayın oluşumunda otomatik olarak yürütüldüğü halde Prosedür açıkça çağrıldığında uygulanır.

Aşağıda gösterilen bir karşılaştırma çizelgesi yardımıyla Tetikleyici ve Prosedür arasındaki bazı farklılıkları tartışalım.

Karşılaştırma Tablosu

Karşılaştırma için temeltetikleyicilerprosedürler
TemelBelirtilen olayın oluşumunda otomatik olarak yürütülürler.Gerektiğinde çalıştırılabilirler.
çağrıTetikleyiciler prosedür içinde çağrılamaz.Ancak, bir tetikleyici içindeki bir prosedürü çağırabilirsiniz.
ParametreParametreleri tetikleyicilere geçiremiyoruz.Parametreleri prosedürlere iletebiliriz.
DönüşTetik, yürütme sırasında hiçbir zaman değer döndürmez.İşlem yürütme sırasında değer / değerler verebilir.

Trigger'un tanımı

Tetik, belirtilen bir olayın meydana gelmesi durumunda otomatik olarak gerçekleştirilen bir prosedür gibidir. Prosedür gibi, tetikleyicinin de açıkça çağrılması gerekmez. Tetikleyiciler, belirli bir olayın oluşumuna cevaben bir görevi yerine getirmek için oluşturulur.

Tetikleyici, DDL deyimlerine (DELETE, INSERT veya UPDATE) veya DML deyimlerine (DELETE, INSERT veya UPDATE) veya bazı veritabanı işlemlerine (SERVERERROR, LOGON, LOGOFF, STARTUP veya SHUTDOWN) yanıt olarak çağrılabilir.

Tetik, aşağıda tartışıldığı gibi üç bileşenden oluşur:

  • Olay : Olay, tetikleyicinin yürütülmesine neden olacak bir olayın meydana gelmesidir. Bir olay meydana gelmeden ÖNCE ya da olayın yürütülmesinden SONRA yürütülmesi istenebilir tetikleyici sipariş edilebilir.
  • Koşul : Tetikleyicinin isteğe bağlı bir parçasıdır. Belirtilmediyse, belirtilen olay gerçekleştiğinde tetikleyici yürütülür. Koşul belirtilirse, tetikleyicinin çalıştırılıp çalıştırılmayacağını belirlemek için kuralları kontrol eder.
  • Eylem : Eylem, Tetikleyicinin yürütülmesinde yürütülecek olan bir SQL ifadeleridir.

Bir olayın yaratılmasının genel şekli aşağıda tartışılmaktadır:

 DURUM İŞLEMİNDEN ÖNCE / SONRA AÇIYOR. 

Burada Koşul isteğe bağlıdır.

Prosedürlerin Tanımı

Prosedür, bir görevi gerçekleştirmek için oluşturulan bir program birimi olarak alınabilir ve veritabanında saklanır. Gerektiğinde SQL ifadesi tarafından çağrılırlar. Prosedürler, geliştiriciler tarafından tanımlanan kullanıcı tanımlı fonksiyonlar gibidir. CALL veya EXECUTE kullanılarak işlemler başlatılabilir.

Prosedürler aşağıdaki durumlarda yararlıdır:

  • Prosedür başka bir uygulama tarafından isteniyorsa, herhangi bir uygulama tarafından başlatılabilmesi için sunucuda saklanabilir. Prosedürün bir veritabanından diğerine çoğaltma eforunu azaltır ve ayrıca yazılımın modülerliğini geliştirir.
  • Prosedür sunucuda yürütüldüğü için veri transferini azaltır ve ayrıca iletişim maliyetini düşürür.
  • Prosedürler, tetikleyici gücünün ötesindeki karmaşık kısıtlamaları kontrol etmek için kullanılabilir.

Bir prosedür oluşturmanın genel şeklini tartışalım:

 PROSEDÜR OLUŞTURMA () İADE; 

Burada, parametreler ve yerel bildirimler isteğe bağlıdır. Sadece gerektiğinde bahsedilir. Aşağıdaki açıklama prosedürlerin çağrılmasını açıklamaktadır.

 TELEFON ETMEK () ; 

Tetikleme ve İşlem Arasındaki Temel Farklılıklar

  1. Tetikleyici ve prosedür arasındaki temel fark, bir tetikleyicinin bir olay gerçekleştiğinde otomatik olarak çağrılan bir ifade olmasıdır. Öte yandan, gerektiğinde prosedür başlatılır.
  2. Bir tetikleyici içindeki prosedürü tanımlayabilirsiniz. Ancak, herhangi bir olayın gerçekleşmesi durumunda otomatik olarak tetikleyici başlatılması gerektiğinden, yordamın içinde hiçbir tetikleyici tanımlanmaz.
  3. Parametreleri prosedürlere iletebiliriz, ancak bizim tarafımızdan başlatılmadığı için tetiklemek için parametreleri geçemiyoruz.
  4. Bir prosedür parametre değerlerini veya kodunu döndürebilir, ancak bir tetikleyici olamaz.

Sonuç:

Tetikleyiciler kullanışlıdır, ancak veri karmaşıklığını arttırdığından alternatifleri varsa önlenirler. Bazen tetikleyiciler de uygun bir prosedürle ikame edilir.

Top