dml Tetikleyicileri
dml Tetikleyiciler, veri düzenleme dili (dml) olay tablo veya Görünüm tetikleyici tanımlanmış etkileyen gerçekleştiğinde otomatik olarak yürürlüğe saklı yordam özel bir tür var. dml olaylar, INSERT, update veya delete deyimleri içerir. dml Tetikleyiciler, iş kuralları ve veri tutarlılığı sağlamak, diğer tabloları sorgulamak ve karmaşık eklemek için kullanılabilir Transact-SQLdeyimleri. Tetikleyici ve patlar bu ifadeyi geri gelen tetikleyici içinde alınması tek bir işlem olarak kabul edilir. Ciddi bir hata (örneğin, yetersiz disk alanı) tespit edilirse tüm işlemi otomatik olarak geri alır.
dml tetikleyici faydaları
Varlık tutarlılığını ya da etki alanı bütünlüğü zorlayabilir, dml Tetikleyiciler kısıtlamalara benzer. Genel olarak, varlık tutarlılığını her zaman en düşük düzeyde PRIMARY key ve UNIQUE kısıtlamaları bir parçası veya kısıtlamaları bağımsız olarak oluşturulan dizinler tarafından zorunlu. Etki alanı bütünlüğü check kısıtlamaları zorlanması ve tutarlılığı (RI) FOREIGN key kısıtlamaları ile zorunlu. dml Tetikleyiciler, zaman kısıtlamaları tarafından desteklenen özellikleri fonksiyonel uygulama gereksinimlerini olamaz en kullanışlı olandır.
Aşağıdaki listede, dml tetikleyici kısıtlamaları ile karşılaştırır ve dml Tetikleyiciler yararları üzerinde olduğunda tanımlar.
dml Tetikleyiciler veritabanında ilişkili tabloları değişiklikleri Çağlayan; Ancak, bu değişiklikleri, geçişli başvurusal bütünlük kısıtlamalarını daha verimli bir şekilde kullanarak çalıştırılabilir. BAŞVURULAR yan tümcesi bir geçişli başvurusal eylemi tanımlar sürece FOREIGN key kısıtlamaları yalnızca başka bir sütunundaki bir değeri tam olarak eşleşen bir sütun değeri doğrulayabilirsiniz.
Onlar amaçlı ya da yanlış INSERT, update ve delete işlemleri karşı koruma ve Denetim kısıtlamaları ile tanımlanmış olanlardan daha karmaşık diğer kısıtlamaları zorlayın.
check kısıtlamaları, dml Tetikleyiciler diğer tablolardaki sütunlara başvurabilir. Örneğin, tetikleyici bir select başka bir tablodan eklenen veya güncelleştirilen verileri karşılaştırmak ve ek eylemler gerçekleştirmek, gibi verileri değiştirmek veya bir kullanıcı tanımlı hata iletisi görüntülemek için kullanabilirsiniz.
Onlar önce ve sonra bir veri değişikliği tablo durumunu değerlendirmek ve bu fark temel eylemleri.
Birden fazla dml Tetikleyicileri tablo aynı tür (INSERT, update veya delete) birden çok izin, farklı aynı değişiklik beyanı karşısında eylemlerini.
Kısıtlamaları hatalar yalnızca standart sistem hata iletileri üzerinden iletişim kurabilir. Uygulamanız gerektiriyorsa veya özelleştirilmiş iletiler ve daha karmaşık hata işleme, yararlanabilir, bir tetikleyici kullanmanız gerekir.
dml Tetikleyiciler izin verme veya böylece teşebbüs veri değişikliği iptal bilgi tutarlılığını ihlal değişiklikleri geri. Böyle bir tetikleyici yürürlüğe giren yabancı anahtar değiştirme ve yeni değer onun birincil anahtarıyla eşleşmiyor gidebilirim. Ancak, yabancı anahtar kısıtlamaları genellikle bu amaç için kullanılır.
Tetikleyici tablo kısıtlamaları mevcut, sonra ıNSTEAD of tetikleyici yürütme ama sonra tetikleyici yürütme kala kontrol edilir. Kısıtlamaları ihlal INSTEAD of Tetikleyici eylemleri geri alınır ve sonra tetikleyici yürütülmez.
ddl Tetikleyicileri türleri
SONRA tetikleyici
SONRA Tetikleyiciler INSERT, update, birleştirme eylem sonra yürütülen veya delete deyimi gerçekleştirilir. SONRA bir kısıtlama ihlali meydana gelirse asla Tetikleyiciler çalıştırılır; Bu nedenle, bu Tetikleyicileri kısıtlama ihlalleri engelleyebilecek herhangi bir işlem için kullanılamaz.INSTEAD of tetikleyici
INSTEAD of Tetikleyiciler, tetikleyici deyimi standart eylemleri geçersiz. Bu nedenle, hata veya bir veya daha fazla sütun ve gerçekleştirme ek eylemler ekleme, güncelleştirme veya silme satır veya satırları önce denetleme değeri gerçekleştirmek için kullanılabilirler. Örneğin, değer olarak güncelleştirilmekte bordro tablo bir saatlik ücret sütununda belirtilen değeri aşarsa, tetikleyici bir hata iletisi üretir ve hareket geri veya kayıt bordro tabloya eklemeden önce bir denetim izi yeni bir kayıt eklemek için tanımlanabilir. INSTEAD OF Tetikleyicileri birincil avantajı, they would not be güncelleştirmeleri destekleyecek şekilde güncelleştirilebilir görünümler etkinleştirmek olduğunu. Örneğin, birden çok temel tabloları temel alan bir Görünümü INSTEAD of tetikleyici ekler, güncelleştirmeler, destek için kullanmanız gerekir ve birden fazla tablo başvurusu verileri siler. INSTEAD OF Tetikleyiciler diğer bir avantajı, onlar için toplu iş parçalarını başarılı bir toplu iş diğer bölümlerinin icar süre reddedebilirsiniz kod mantığı that you enable olduğunu.Bu tablo sonra işlevselliği karşılaştırır ve INSTEAD OF Tetikleyiciler.
İşlev
SONRA tetikleyici
INSTEAD of tetikleyici
Uygulanabilirlik
Tabloları
Tablolar ve görünümler
Tablo veya Görünüm başına miktar
Eylem (update, delete ve INSERT) tetikleneceği başına birden fazla
Eylem (update, delete ve INSERT) tetikleneceği başına bir
Basamaklı başvuruları
Hiçbir kısıtlama Uygula
update ve delete INSTEAD OF Tetikleyiciler cascaded bilgi tutarlılığı kısıtlamaları hedefleri olan tablolar üzerinde izin verilmez.
Yürütme
Sonra:
Kısıtlama işleme
Bildirime dayanan bilgi tutarlılığına eylemleri
eklenen ve silindi tablolar oluşturma
Triggering eylemi
Önce:
Kısıtlama işleme
Yerine:
Triggering eylemi
Sonra:
eklenen ve silindi tablolar oluşturma
Yürütme sırası
İlk ve son yürütme belirtilebilir
Geçerli değildir
varchar(max), nvarchar(max), ve varbinary(max)sütun başvuruları takılı ve silindi tabloları
İzin verilen
İzin verilen
text, ntext, ve imagesütun başvuruları takılı ve silindi tabloları
İzin verilmiyor
İzin verilen
clr Tetikleyicileri
clr tetikleyici ya da bir sonraki olabilir veya Tetikleyici ıNSTEAD OF. clr tetikleyici ddl tetikleyici da olabilir. Yürütme yerine bir Transact-SQLsaklı yordamı, bir clr tetikleyici yürütür veya bir kurul üyesi olan yönetilen kodunda yazılmış daha yöntemlerinin oluşturulmuş.net Framework ve de yüklenen SQL Server.
ilişkili Görevler
Görev |
Konu |
---|---|
dml tetikleyici oluşturmak nasıl açıklar. |
|
dml tetikleyici oluşturmak nasıl açıklar. |
|
Hem tek satır ve multi-row veri değişiklikleri ele dml tetikleyici oluşturmak nasıl açıklar. |
Birden çok satır veri işlemek için dml Tetikleyicileri oluşturma |
İç içe Tetikleyiciler açıklar. |
|
Tetikleyici harekete sonra sipariş içinde nasıl belirleneceğini açıklar. |
|
Eklenen özel ve delete tetikleyici kod tabloları açıklar. |
|
Değiştirme veya yeniden adlandırma dml tetikleyici açıklar. |
|
dml Tetikleyiciler hakkında bilgi görüntülemek açıklar. |
|
dml Tetikleyiciler devre dışı bırakma veya silme açıklar. |
|
Tetikleyici güvenliği yönetmek nasıl açıklar. |
Ayrıca bkz.
Başvuru
alter TETIKLEYICI (Transact-sql)
drop TETIKLEYICI (Transact-sql)
DISABLE TETIKLEYICI (Transact-sql)