İşlemle birlikte tetikleyici


25

Diyelim ki şu durumumuz var:

Table_AÜzerinde bir tetikleyici olan bir tablomuz var (diyelim ) INSERT. Tetikleyici iş, table_Biçine eklenen değerleri temel alarak bazı satırları güncellemektir table_A.

Şimdi, basit bir şekilde tabloya bir satır eklediğimizde her şey yolunda gider, ancak bir işlemden veri eklediğimiz durumlar ne olacak? Tetikleyici tüm işlem ifadeleri başarılı bir şekilde çalışana kadar bekleyecek mi, yoksa bildirimi tanıdığı anda kovulacak mı? Tetikleyici ilk girişi tanıdığında hemen patlarsa, işlem son satırda başarısız olursa ne olur? Bu durum için bazı mekanizmalar var mı?

Yanıtlar:


37

Bir ek her zaman bir işlem içindedir.

Açık bir süreniz BEGIN TRAN ... COMMITyoksa veya SET IMPLICIT_TRANSACTIONS ONdeyim kendi kendine yeten otomatik taahhüt işlemi olarak çalışır .

Tetik her zaman tetiği ateşleyen eylemin işleminin bir parçasıdır. İşlem geri alımına neden olan tetikleyicide bir hata oluşursa, ateşleme işlemi de geri alınır.

Tetikleyiciler örtülü olarak var XACT_ABORT. Bu ayar açıkken yapılan bir hata otomatik olarak işlem geri alınmasına neden olur (deyimle kodda belirtilen hatalar hariç RAISERROR).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.