Her iki tablomda da farklı isimlerle tabloda listelenen tetikleyicileri görebiliyorum. Yaygın mı yoksa kötü bir uygulama mı? SQL Server 2005Aynı tabloda iki farklı insert tetikleyicisi olabilir mi?
cevap
Evet, her işlem için birden fazla tetikleyiciye kesinlikle sahip olabilirsiniz, örn. AFTER INSERT
veya AFTER UPDATE
vb. Ayrı endişeleri ayrı, küçük, yönetilebilir kod parçalarına ayırmak mantıklıdır.
Güvenemeyeceğiniz tek şey, belirli bir sırayla yürütülecekleridir - tetikleyicilerin gerçekten yürütüldüğü sıra, aynı zamanda her zaman aynı, yani kararlı olmak zorunda değildir.
RDBMS'ye bağlı. Postgres, alfa sırasına göre birden fazla tetikleyicinin çağrılmasını garanti eder. SQL Standard'ın (nadiren takip edilen) yaratılış sırasına göre olduğunu belirtirler. –
@AndrewLazarus: SQL Server'a atıfta bulundum (OP bunu sordu) ve SQL Server'ın böyle bir özelliği yok. Bunu işaret ettiğin için teşekkürler! –
Kesinlikle. Çoğu zaman, insanların Google'dan çok fazla yer aldığını anlatan notlar ekledim. –
'u kullanıyorum, bu iyi bir uygulamadır çünkü zaman içinde değişikliklerinizi küçük (çevik) parçalar halinde parçalayabilir ve birbirinden bağımsız olarak ekleyebilir veya kaldırabilirsiniz.
BTW Bir kerede 2 veya daha fazla satır eklerseniz (temel olarak bir grup kaydı içe aktarıyorum), EACH ekini referans alabilmem için bir yol var mı, yoksa tetikleyici her bir ek için otomatik olarak yürütülür mü? –
@hmd tetikleyici, her bir ek insert için otomatik olarak yürütülür ve her bulk insert komutu için tetikleyicinin bir kez çalıştırılacağı toplu insertler kullanılmadığı sürece. – Niraj
Bunun eski bir soru olduğunu bilin! Tetikleyicinizde, eklediğiniz tüm satırları içeren "eklenen" adlı bir tabloya her zaman başvurabilirsiniz (insert tetikleyicide bir veya daha fazla satır olması). Ayrıca, imleçler oluşturarak, her satırınızda dolaşabilir ve isterseniz bunları yapabilirsiniz. – olf
- 1. Farklı klasörlerde iseler aynı isimde iki sınıfa sahip olabilir mi?
- 2. Farklı işlemlerde INTERERT tetikleyicisi tetiklensin mi?
- 3. iyi yolu aynı tabloda
- 4. Aynı kısmi iki farklı uygulamada farklı davranır
- 5. Bir Android uygulamasının farklı cihazlar için farklı sürümleri aynı anda olabilir mi?
- 6. İki tabloda nasıl özetlenir?
- 7. Bir tabloda aynı tablonun iki yabancı anahtarı için ilişkiyi kurar
- 8. Bir öğede iki JavaScript onclick olayım olabilir mi?
- 9. Bir tabloda iki MySQL zaman damgası sütunları
- 10. Skycons, aynı simgeyi iki kez gösteremez mi?
- 11. PHP ve HTML kod yardımları aynı dosyada olabilir mi?
- 12. Farklı verilerle aynı iki tablo yapısını birleştir
- 13. jQuery.Cycle - aynı kapsayıcıda iki farklı efekt kullanın
- 14. Aynı düğüm bağımlılığının iki farklı sürümünü kullanma
- 15. Bir uygulamada aynı lib'lerin iki farklı sürümü (aynı ada sahip) bulunabilir mi?
- 16. Farklı ipliklerdeki aynı konuma iki rahat yazma, her zaman diğer parçacıklarla aynı sırada görülebilir mi?
- 17. SQL Insert değerleri sırayla - bir veya iki adımda yapılabilir mi?
- 18. Kendiniz tekrarlama: aynı SQL sorgusu, ancak iki farklı tablo
- 19. Matplotlib + Seaborn - aynı renkteki iki çizgi mi?
- 20. Aynı sqlite veritabanının farklı bağlantıları aynı anda işlemlere başlayabilir mi?
- 21. Aynı projede iki _Layout dosyası nasıl olabilir? Benim Görünüm klasöründe
- 22. Aynı sözleşmeye, aynı bağlama, aynı adrese, ancak farklı bağlantı noktalarına sahip olabilir misiniz?
- 23. INSERT
- 24. Tek bir Backbone Model Örneği iki koleksiyonda aynı anda olabilir mi?
- 25. Aynı tabloda birden çok kez aynı Querydsl birleştirin
- 26. Can MPI sendbuf ve recvbuf aynı şey olabilir mi?
- 27. Aynı anda birden fazla AJAX isteğim olabilir mi?
- 28. ModelAttribute ilkel olabilir mi?
- 29. Aynı şemadaki farklı kalıtım türleri
- 30. Bir veritabanı özniteliği birincil ve yabancı anahtar olabilir mi?
Tetikleyiciler ne yapar? "INSERTED" tablosu endekslenmemiş, bu nedenle performans nedenleriyle bunları birleştirmek daha iyi olabilir. –