Aracılığıyla paylaş


dml tetikleyici yürütme

Kısıtlama ihlali meydana gelirse Tetikleyiciler asla yürütüldükten sonra; Bu nedenle, bu tetikleyici bir kısıtlama ihlali engelleyebilecek herhangi bir işlem için kullanılamaz.

INSTEAD of tetikleyicileri INSTEAD of tetikleyici eylem yürütülür.Sonra bu Tetikleyiciler yürütülen eklenen ve Silinmiş tablolarına yansıtan değişiklikler temel tablo oluşturulur, ancak diğer eylemleri önce alınır.Bunlar kısıtlaması eylemler tamamlayıcı bir önişleme gerçekleştirebilmek için kısıtlamalar önce yürütülür.

Bir INSTEAD of tetikleyici yeniden genellikle harekete tablo deyim tablo üzerinde tanımlı bir INSTEAD of tetikleyicisi yürütürse tetikleme yinelemeli olarak adlandırılır.Bunun yerine, tablo INSTEAD OF tetikleyici Hayır vardı ve kısıtlama işlemlerini sonra tetikleyici yürütmeler zinciri başlar gibi deyim işlenir.Örneğin, DML tetikleyicisi bir tablo için INSTEAD OF INSERT tetikleyici olarak tanımlanır ve aynı tabloda INSERT deyim tetikleyici yürütür, INSTEAD of Tetikleyici tarafından yürütülen INSERT deyim tetikleyici yeniden çağırmaz.INSERT Tetikleyici tarafından yürütülen işlem kısıtlama eylemleri gerçekleştirerek ve sonra ekleme Tetikleyicileri tablo için tanımlanmış hiçbir tetikleme başlatır.

Bir görünümü üzerinde tanımlı bir INSTEAD of tetikleyicisi genellikle INSTEAD of tetikleyici yeniden harekete görünümü karşı bir deyim yürütür, yinelemeli olarak çağrılmaz.Bunun yerine, deyim görünümün temelindeki temel tablolara yönelik değişiklikler olarak çözümlenir.Bu durum, görünüm tanımının tüm kısıtlamaları Güncellenebilir bir görünüm için karşılaması gerekir.Güncellenebilir görünümleri tanımı için bkz: Bir görünüm üzerinden veri değiştirme.Örneğin, DML tetikleyicisi bir görünüm için bir update INSTEAD OF tetikleyicisi olarak tanımlanır ve aynı görünüme başvuran bir update deyim tetikleyici yürütür, INSTEAD of Tetikleyici tarafından yürütülen bir update deyim tetikleyici yeniden çağırmaz.Görünümü bir INSTEAD of tetikleyicisi olmaması gibi tetikleyici tarafından yürütülen GÜNCELLEŞTİRMEYİ görünümü karşı işlenir.Bu GÜNCELLEŞTİRMEYLE değiştirilen sütunları tek bir temel tablo çözümlenmesi gerekir.Her değişiklik için bir temel temel tablo zinciri kısıtlamaları uygulamak ve sonra tablo için tanımlanmış tetikleyici tetikleme başlatır.

DML tetikleyicisi performans ek yükünü genellikle düşüktür.saat DML tetikleyicisi harcanan çoğunlukla diğer tabloları başvuru çalışan katılan, hangi olabilir bellekte veya veritabanı aygıtı.The deleted and inserted tables are always in memory.Tetikleyici tarafından başvurulan tablolar konumunu miktarını belirler saat işlem gerektirir.

Not

dml Tetikleyiciler imleçler kullanılması performansı üzerindeki potansiyel olumsuz etkisi nedeniyle önerilmez.İmleçleri yerine satır kümesi temel mantığı, birden çok satır etkileyen DML tetikleyicisi tasarlamak için kullanın.

dml tetikleyici yürütme ve bölümlenmiş görünümler

İçinde tetiklendikleri update ve delete Tetikleyiciler yangın bölümlenmiş bir görünüm underlie tablo biçimi değişti şekilde SQL Server 2000.De SQL Server 2000, ne zaman bir update veya delete deyim ya da yerel bölümlenmiş bir görünüm karşı verilen veya dağıtılmış, hiçbir güncelleştirme veya silme tetikleyicileri görünüm yangın temel tablolar üzerinde tanımlıBu güncelleştirmeden etkilendiği veya silme işlemi tablolarda Tetikleyiciler içerir.De SQL Server 2008 ve SQL Server 2005, bir update veya delete tetikleyici geçirilir yalnızca temel tablo, tetikleyici tanımlı güncelleştirme etkilenmiş, veya silme işlemi.Bu davranış hem after aynıdır ve INSTEAD OF tetikleyicileri.

Örneğin, bölümlenmiş bir görünüm göz önünde pv alan tablolardan oluşur T1 ve T2.Buna ek olarak, hem de T1 ve T2 üzerinde tanımlı update tetikleyici vardır.De SQL Server 2000, karşı verilen bir update deyim pv satırların yalnızca etkileyen T1 update Tetikleyiciler hem neden olan T1 ve T2 baþlatmak için.De SQL Server 2008 ve SQL Server 2005, yalnızca tanımlanan güncelleştirme tetikleyici T1 harekete geçirilir.

Aşağıdaki tablolarda davranış değişiklikleri özetlenmektedir.

INSERT, Update ya da silme işlemi yerel bölümlenmiş bir görünüm

 

SQL Server 2000

Geçerli sürüm

TETİKLEYİCİ EKLE

Yalnızca etkilenen tabloları üzerinde harekete geçirilir.

Yalnızca etkilenen tabloları üzerinde harekete geçirilir.

GÜNCELLEŞTİRME TETİKLEYİCİ

Bu tür bir tetikleyici tanımlanmış bölümlenmiş görünümün temelindeki tüm tablolar için harekete geçirilir.

Yalnızca etkilenen tabloları üzerinde harekete geçirilir.

TETİKLEYİCİ SİLME

Bu tür bir tetikleyici tanımlanmış bölümlenmiş görünümün temelindeki tüm tablolar için harekete geçirilir.

Yalnızca etkilenen tabloları üzerinde harekete geçirilir.

INSERT, Update ya da silme işlemi dağıtılmış bölümlenmiş görünümün üzerinde

 

SQL Server 2000

Geçerli sürüm

TETİKLEYİCİ EKLE

Yalnızca etkilenen tabloları üzerinde geçirilir dağıtılmış bölümlü görünüm.Tablolar etkilenir, yerel örneğine ve uzak örnek tablolar üzerinde tanımlı tetikleyiciler tetikleyebilir.

Yalnızca etkilenen tabloları üzerinde geçirilir dağıtılmış bölümlü görünüm.Tablolar etkilenir, yerel örneğine ve uzak örnek tablolar üzerinde tanımlı tetikleyiciler tetikleyebilir.

GÜNCELLEŞTİRME TETİKLEYİCİ

Bu tür bir tetikleyici tanımlanmış bölümlenmiş görünümün temelindeki tüm tablolar için harekete geçirilir.

Uzaktan kumandanın tüm tablolar için harekete geçer örnek , bu tür bir tetikleyici tanımlandığı üzerinde.Yalnızca yerel etkilenen tabloları üzerinde geçirilir örnek.

TETİKLEYİCİ SİLME

Bu tür bir tetikleyici tanımlanmış bölümlenmiş görünümün temelindeki tüm tablolar için harekete geçirilir.

Uzaktan kumandanın tüm tablolar için harekete geçer örnek , bu tür bir tetikleyici tanımlandığı üzerinde.Yalnızca yerel etkilenen tabloları üzerinde geçirilir örnek.