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.

clr Tetikleyicileri oluşturma

dml tetikleyici oluşturmak nasıl açıklar.

clr Tetikleyicileri oluşturma

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.

Iç içe Tetikleyicileri oluşturma

Tetikleyici harekete sonra sipariş içinde nasıl belirleneceğini açıklar.

Öncelikle belirtmek ve Tetikleyiciler son

Eklenen özel ve delete tetikleyici kod tabloları açıklar.

Eklenen ve silinen tabloları kullanın

Değiştirme veya yeniden adlandırma dml tetikleyici açıklar.

Değiştirme veya dml Tetikleyicileri yeniden adlandırma

dml Tetikleyiciler hakkında bilgi görüntülemek açıklar.

dml Tetikleyiciler hakkında bilgi almak

dml Tetikleyiciler devre dışı bırakma veya silme açıklar.

Sil veya dml Tetikleyiciler devre dışı bırakma

Tetikleyici güvenliği yönetmek nasıl açıklar.

Tetikleyici güvenliği yönetme

Ayrıca bkz.

Başvuru

CREATE TRIGGER (Transact-SQL)

alter TETIKLEYICI (Transact-sql)

drop TETIKLEYICI (Transact-sql)

DISABLE TETIKLEYICI (Transact-sql)

Kavramlar

Tetikleyici işlevler (Transact-sql)