Harekete geçirici yürütme, veri alma, toplu denetleme
C Tetikleyici , bir kullanıcı veri bir tablo veya görünümü değiştirir, otomatik olarak yürütülür saklı yordam özel bir biçimidir.Tetikleyicileri yürütme, toplu alma işleminin performansı etkileyebilir.Örneğin, bir kayıt içe her saat bir toplu hızını azaltır e-posta iletisi olarak gönderen bir tetikleyici işlem alma ve bir e-posta flurry oluşturur.
Toplu, veri alma, Tetikleyicileri yürütülen (denetleyebilirsinizharekete geçirildi) Toplu alma işlemi tarafından.Bir toplu alma işlemi için gereken yürütmek yalnızca bir tablo için INSERT ve birden çok satır ekler destekleyen Tetikleyicileri ıNSTEAD OF tetikleri.Bu tetikleyiciler hakkında daha fazla bilgi için bkz: DML Tetikleyicileri.
Important Note: |
---|
Tetikleyici devre dışı bırakıldığında, kilit bir şemada değişiklik meta veriler güncelleştirmek için alınmış.Diğer (örneğin, bir çevrimiçi Dizin Oluþturma) komutları veya işlemleri etkileyebilir.Hedef erişme gibi bir anlık görüntü yalıtım hareket tablo eşzamanlı DDL değişikliklerinden dolayı başarısız olabilir. |
Tetikleyici etkinleştirildiğinde, her toplu iş iş iş için bir kez çalıştırılır.
Toplu alma işlemi sırasında işlem için kullanılan komut davranış bağlıdır.Varsayılan olarak, Kullanımıbcp komut ve BULK INSERT (Transact-SQL) deyim, tetikleyiciler devre dışı bırakın. Buna ek olarak, INSERT için...SELECT * FROM OPENROWSET(BULK...) bildirimi için varsayılandır yürütmek tetikler.
Aşağıdaki tabloda, varsayılan davranış özetler.
Toplu alma komutu |
Varsayılan davranışı |
---|---|
Kullanımıbcp |
Tetikleyici devre dışı bırakma |
TOPLU EKLEME |
Tetikleyici devre dışı bırakma |
EKLE...SEÇİN * openrowset(bulk...) GELEN |
Tetikleyicileri yürütmek |
Toplu alma komutları Tetikleyicileri nasıl işlendiğini, aşağıdaki bölümlerde açıklandığı gibi değiştirmenize olanak veren bir niteleyiciyi sağlar.
Tetikleyicileri Kullanımıbcp veya BULK INSERT yürütülüyor
Varsayılan olarak, Kullanımıbcp komut ve BULK INSERT deyim Tetikleyicileri yürütün.Ancak, Tetikleyicileri aşağıdaki niteleyicileri kullanarak etkinleştirebilirsiniz:
Komutu |
Niteleyici |
Niteleyici türü |
---|---|---|
Kullanımıbcp |
-h"FIRE_TRIGGERS" |
Ipucu |
TOPLU EKLEME |
fire_triggers |
Bağımsız değişken |
Bir toplu alma işlemi için FIRE_TRIGGERS belirtilirse, bu tabloya eklenen tüm satırlar için tablo için tanımlanmış olan Ekle ve INSTEAD OF tetikleri yürütür.
Daha fazla bilgi için bkz: Kullanımıbcp yardımcı programı ve BULK INSERT (Transact-SQL).
Devre dışı bırakma Tetikleyicileri, INSERT...SEÇİN * openrowset(bulk...) GELEN
Varsayılan olarak, satır kümesi sağlayıcı OPENROWSET toplu Tetikleyicileri yürütür.Tetikleyicileri aşağıdaki niteleyici kullanılarak devre dışı bırakabilirsiniz:
Komutu |
Niteleyici |
Niteleyici türü |
---|---|---|
EKLE...SEÇİN * openrowset(bulk...) GELEN |
with(ignore_triggers) |
Tablo ipucu |
Bu ipucu belirtilirse, OPENROWSET toplu satır kümesi sağlayıcı tarafından Tetikleyicileri yürütülemeyen.ıgnore_trıggers ipucu hakkında daha fazla bilgi için bkz: Tablo ipuçları (Transact-SQL).
Tetikleyicileri etkin olan büyük toplu işlemleri alınıyor
SQL Server 2005 ve sonraki sürümlerinde satır sürümü için tetikleyici kullanın ve satır sürümleri sürüm deposunda saklar tempdb.Yığın önce veri kayıtlarını tetikleyicilerini kullanarak büyük toplu iş iş alma, bir boyutunu genişletmek gerekir tempdb Tetikleyiciler sürüm deposu üzerindeki etkisini uyması için.Daha fazla bilgi için bkz:Satır güncelleştirme kaynak kullanımı.