DML Tetikleyicileri uygulama
DML tetikleyicisi oluşturmadan önce göz önünde bulundurun:
CREATE TRIGGER deyimi toplu iş iş iş, ilk deyim olmalıdır.Tüm diğer deyim bu toplu iş iş işlemde izleyen s CREATE TETIKLEYICI tanımının bir parçası olarak yorumlanır deyim.
DML oluşturma izni varsayılanlarına tetikler tablo sahibi, diğer kullanıcılara bu aktaramazsınız.
Veritabanı nesnelerini DML Tetikleyicileri; adları tanımlayıcıları kurallarýna gerekir.
DML tetikleyicisi dışında geçerli veritabanı nesnelerini başvuruda bulunabilir, ancak, yalnızca geçerli veritabanında DML tetikleyicisi oluşturabilirsiniz.
DML tetikleyicisi oluşturulamadı, geçici veya sistem tablo, olsa da, DML tetikleyicisileri geçici tablo s başvuruda bulunabilir.Sistem tabloları değil başvuru; kullanın Bilgi şema görünümlerini yerine.
Bunun YERINE OF DELETE ve ıNSTEAD OF UPDATE Tetikleyicileri üzerinde tanımlanamaz bir tablo bir DELETE veya UPDATE eylem için tanımlanan yabancı anahtar sahip.
TRUNCATE tablo deyim, WHERE yan tümce (tüm satırları siler) olmadan kullanılan DELETE deyim gibi olmasına karşın, DELETE Tetikleyicileri TRUNCATE tablo deyim oturum açmış olduğundan ateşlenmesine neden olmaz.
WRITETEXT deyim, INSERT veya UPDATE tetikleyicisi ateşlenmesine neden olmaz.
Important Note: |
---|
Tetikleyicileri sonuç kümeleri döndürmek için özelliği bir gelecekte will be removed sürüm SQL Server'ın.Sonuç kümeleri Tetikleyicileri bunlarla çalışmak için tasarlanmamış uygulamalarda beklenmedik davranışa neden olabilir.Sonuç kümeleri Tetikleyicileri yeni geliştirme iş döndürülüyor önlemek ve şu anda bunu uygulamaları değiştirmek planlama.Sonucu döndüren gelen Tetikleyicileri önlemek için ayarlar SQL Server, küme Tetikleyiciler seçeneği sonuçlar izin verme 1. Bu seçeneğin varsayılan ayarı 1'de SQL Server'ın gelecekteki bir sürümüne olacaktır. |
DML tetikleyicisi oluşturduğunuzda, bu seçeneği belirtin:
Adı.
Tetikleyici tanımlandığı tablo.
Tetikleyici ateşlenmesine olduğunda.
Tetikleyiciyi etkinleştiren veri değiştirme deyimleri.Geçerli seçenekler, INSERT, UPDATE olan veya DELETE.Birden fazla veri değişikliği deyim aynı tetikleyici etkinleştirebilirsiniz.Örneğin, bir tetikleyici, INSERT ve UPDATE deyimini tarafından etkinleştirilebilir.
Tetikleyici eylem gerçekleştirmek için programlama ifadeleri.
Birden çok DML Tetikleyicileri
A tablo farklı adlara sahip olmaları kaydıyla, birden çok AFTER Tetikleyicileri, belirli bir türün olabilir; her tetikleyici, çeşitli işlevler gerçekleştirebilirsiniz.Tek bir tetikleyici için alt küme küme küme kümesini üç uygulayabilirsiniz, ancak her tetikleyici için yalnızca bir tablo, ancak uygulayabilirsiniz kullanıcı eylemleri (UPDATE, INSERT ve DELETE).
A tablo ıNSTEAD OF tetikleyici belirli bir türün yalnızca bir sahip olabilir.
Tetikleyici izinler ve sahipliği
Tetikleyicileri, tabloyu veya görünümü üzerinde tanımlandıkları şemada oluşturulur.Örneğin, tetikleyici Trigger1 tablo üzerinde oluşturulurHumanResources.Employee tetikleyici şema nitelenmiş ad olanInsankaynakları.Trigger1 .
Üzerinde tetikleyici tanımlanmış, tablonun sahibi için CREATE TRIGGER izinleri varsayılan olarak sysadmin üyelerinin ve sunucu rolünü sabitdb_owner and db_ddladmin veritabanı rollerini sabit ve transfer edilebilir değildir.
Bir INSTEAD OF tetikleyicisi bir görünüm oluşturduysanız, sahiplik zinciri görünümü sahibi de görünüm ve tetikleyici tarafından başvurulan temel tablolar değil sahibiyseniz bozulur.Görünüm sahibi tarafından olduğu temel tablo için tablonun sahibi ayrı ayrı gerekli izinlere anybody için okuma veya Görünüm güncelleştiriliyor vermelisiniz.Aynı kullanıcı hem görünüm hem de temel temel tablolar sahipse, bunlar yalnızca görünüm, değil tek tek temel tablolar üzerinde diğer kullanıcıların izinleri gerekir.Daha fazla bilgi için bkz:Sahiplik chains.
Bir tetikleyici oluşturmak için