Aracılığıyla paylaş


Ilk ve son Tetikleyicileri belirtme

İlişkili AFTER tetikleyicisi birinin belirtebileceğiniz bir tablo tetikleyici veya son sonra ya da ilk olarak tetikleyen için her bir INSERT tetikleyicisi sonra DELETE ve UPDATE Tetikleyici eylemleri.Ilk ve son Tetikleyiciler arasında tetikleyen AFTER Tetikleyicileri tanımsız bir sırayla çalıştırılır.

To specify the order for an AFTER trigger, use the sp_settriggerorder stored procedure.sp_settriggerorder has the following options.

Seçenek

Açıklama

First

Bir tetikleyici eylem için tetikleyici harekete sonra ilk DML tetikleyicisi olduğunu belirtir.

Last

SONRA bir tetikleyici eylem için tetikleyici harekete geçen DML tetikleyicisi olduğunu belirtir.

None

DML tetikleyicisi harekete belirli bir sıraya olduğunu belirtir.Esas alınan ilk veya son tetikleyici sıfırlamak için kullanılır.

Aşağıdaki örnekte gösterildiği kullanmasp_settriggerorder:

sp_settriggerorder @triggername = 'MyTrigger', @order = 'first', @stmttype = 'UPDATE'
Important noteImportant Note:

İlk ve son tetikleyici iki farklı DML Tetikleyiciler olması gerekir.

Bir tabloda INSERT, UPDATE ve DELETE Tetikleyicileri aynı anda tanımlanmış olabilir.Kendi ilk ve son tetikleyici her deyim türü olabilir, ancak aynı tetikleyici olamazlar.

Bir tablo için tanımlanmış ilk veya son tetikleyici FOR UPDATE, DELETE için veya için INSERT, kapsayan gibi bir tetikleyici eylem kapsamaz, hiçbir eksik eylemler için ilk veya son tetikleyici vardır.

INSTEAD OF Tetikleyicileri ilk veya son tetikleyici belirtilemez.Güncelleştirmeler için temel tabloların yapılmadan önce INSTEAD OF Tetikleyicileri harekete geçirdi.Güncelleştirmeleri altındaki tüm tablolar için bir INSTEAD OF tetikleyicisi tarafından yapılırsa, önce tablo üzerinde tanımlı bir AFTER tetikleyicisi harekete güncelleştirmeler yapılır.Örneğin, bir INSTEAD OF INSERT tetikleyicisi bir görünümde temel tabloya veri ekler ve temel tablo bir INSTEAD OF INSERT tetikleyicisi ve üç sonra INSERT tetikleyicilerini içeriyorsa, temel tablo üzerinde tetikleyici INSTEAD OF INSERT yerine ekleme işlemi harekete geçirilen ve temel tablo ekleme herhangi bir eyleminiz sonra temel tablo üzerinde AFTER tetikleyicilerini harekete.Daha fazla bilgi için bkz: DML bir tetikleyici geçirilir, belirtme.

İlk veya son tetikleyici bir ALTER TRIGGER deyim değişir,İlk veya son özniteliğini iptal edilen ve sipariş değeri ayarlanırsa için yok . Sipariş gerekir Sıfırla kullanaraksp_settriggerorder.

The OBJECTPROPERTY işlev Tetikleyici özelliklerini kullanarak ilk veya son tetikleyici olup olmadığını raporlarExecIsFirstTrigger ve ExecIsLastTrigger .

Çoğaltma, otomatik olarak ilk tetikleyici için bir anında güncelleştirilirken eklenir veya güncelleştiren bir abonelik sıraya herhangi bir tablo oluşturur.Çoğaltma ilk tetikleyici, tetikleyici olması gerekir.Çoğaltma ilk tetikleyici içeren bir tablo bir anında güncelleme veya kuyruğa alınmış güncelleştirme dahil çalıştığınızda bir hata harekete geçiren abonelik.Bir tablo, içerdiği yüklendikten sonra ilk tetikleyici tetikleyici yapmaya çalışırsanız bir abonelik, sp_settriggerorder hata verir.Yoksa veya çoğaltma tetikleyicisi üzerinde ALTER kullanınsp_settriggerorder için son bir çoğaltma tetikleyicisi veya hiç değiştirmek için harekete, abonelik düzgün çalışmaz.