Tetikleyiciler için sınırlamalar karşılaştırılması
Sınırlamalar ve dml tetikler her özel durumlarda kullanışlı hale getirmek yararı vardır.dml Tetikleyiciler birincil avantajı kullanan karmaşık işleme mantığının içerebilir olduğu Transact-SQL kod.Bu nedenle, dml Tetikleyiciler tüm kısıtlamaları işlevselliği destekler; Ancak, dml tetikleyici her zaman belirli bir özellik için en iyi yöntem değildir.
Varlık tutarlılığını her zaman zorunlu düşük düzey bölümü birincil anahtar ve benzersiz kısıtlamaları veya kısıtlamaları bağımsız olarak oluşturulan dizinler tarafından.Etki alanı bütünlük Kontrol kısıtlamaları zorlanması ve bilgi tutarlılığı (RI) varsayarak kendi özellikleri işlevsel uygulamayı karşılamak yabancı anahtar kısıtlamaları zorlanması.
dml tetikleyici kısıtlamaları tarafından desteklenen özellikleri uygulamanın işlevsel gereksinimlerini karşılayamayan en yararlı olur.Örneğin:
BAŞVURULAR yan tümce tümce tümce bir geçişli başvurusal eylem tanımlar sürece yabancı anahtar kısıtlamalarını yalnızca ile başka bir sütunundaki bir değeri tam olarak eşleşen bir sütun değeri doğrulayabilirsiniz.
Hataları yalnızca standartlaştırılmış sistem hata iletileri ile ilgili kısıtlamaları iletişim kurabilirsiniz.Uygulamanızı gerektirir veya özelleştirilmiş iletiler ve daha karmaşık hata işleme, yararlanabilir, bir tetikleyici kullanmanız gerekir.
dml Tetikleyiciler veritabanında değişiklikler ilgili tablolarda basamaklı; Ancak, bu değişiklikleri daha verimli bir şekilde üzerinden geçişli başvurusal yürütülebilecek bütünlük kısıtlamaları.
dml Tetikleyiciler izin verme veya ihlal değişiklikleri başvuru geri almak almak bütünlük, böylece veri değişikliği iptal ediliyor.Bir tetikleyici yürürlüğe yabancı anahtar değiştirme ve yeni değeri uydurmak geçebilir, birincil anahtar.Ancak, yabancı anahtar kısıtlamaları, genellikle bu amaç için kullanılır.
Tetikleyici tablo üzerinde kısıtlamalar mevcut değilse INSTEAD of tetikleyici yürütme sonrasında, ancak sonra tetikleyici yürütme için önce denetlenir.Kısıtlamaları ihlal, INSTEAD of Tetikleyici eylemleri geri alınır ve after tetikleyicisi yürütülmez.