dml Tetikleyicileri uygulama

DML tetikleyicisi oluşturmadan önce göz önünde bulundurun:

  • create TRIGGER ifadesi toplu iş içinde ilk deyim olmalıdır.Bu toplu iş iş işlemi izleyin tüm ifadeleri create TRIGGER deyim tanımının bir parçası olarak yorumlanır.

  • dml oluşturma izni varsayılan olarak diğer kullanıcılar için aktaramaz tablo sahibi, tetikler.

  • dml Tetikleyicileri veritabanı nesneleridir ve adlarını tanımlayıcıları kuralları izlemeniz gerekir.

  • DML tetikleyicisi nesneleri geçerli veritabanının dışında başvuruda bulunabilir, ancak yalnızca geçerli veritabanındaki DML tetikleyicisi oluşturabilirsiniz.

  • DML tetikleyicisi oluşturulamaz, geçici ya da sistem tabloDML tetikleyicisiler geçici baþvurabilmenize raðmen, tablos.Sistem tabloları başvurulan; kullanın Information Schema görünümleri onun yerine.

  • YERİNE, delete ve update INSTEAD OF tetikleyicileri bir delete veya update eylem ile tanımlanan yabancı anahtar olan bir tablo tanımlanamaz.

  • truncate table deyim where yan tümce tümce tümce (tüm satırları siler) olmadan delete deyim gibi olsa da, delete Tetikleyiciler truncate table deyim oturum açmış olduğundan baþlatmak neden olmaz.

  • WRITETEXT deyim INSERT veya update Tetikleyiciler ateşlenmesine neden olmaz.

Önemli notÖnemli

Gelecekte de Tetikleyicileri sonuç kümeleri döndürmek için yeteneği kaldırılacak sürüm sql Server'ın.Sonuç kümeleri Tetikleyiciler onlarla birlikte çalışmak üzere tasarlanmış uygulamalar beklenmeyen davranışlara neden olabilir.Yeni geliştirme çalışması Tetikleyicileri sonuç kümeleri döndüren kaçının ve şu anda bunun uygulamaları değiştirmek plan.Tetikleyicileri sonuç döndürmesini engellemek için küme SQL Server, küme izin verme sonuçlar dan Tetikleyiciler seçeneği 1.Bu seçeneğin varsayılan ayar 1 bir gelecekte olacak sürüm sql Server'ın.

DML tetikleyicisi oluşturduğunuzda belirtin:

  • Adı.

  • Tetikleyici tanımlı tablo.

  • Ne zaman tetikleyici ateşlenmesine sağlamaktır.

  • Tetikleyiciyi etkinleştiren veri değişikliği deyimleri.Geçerli seçenekler INSERT, update ya da delete.Birden fazla veri değişikliği deyim aynı tetikleyici etkinleştirebilirsiniz.Örneğin, bir tetikleyici INSERT ve update deyim tarafından etkinleştirilebilir.

  • Tetikleyici eylem gerçekleştirmek programlama deyimleri.

Birden fazla dml Tetikleyicileri

A tablo ; farklı adlara sahip oldukları sağlanan belirli bir türde birden çok sonra tetikleyici olabilir her tetikleyici, çok çeşitli işlevler gerçekleştirebilirsiniz.Ancak, her tetikleyici yalnızca birini uygulayabilirsiniz tablo, tek bir tetikleyici için bunların alt küme küme küme kümesini üç uygulayabilirsiniz, ancak kullanıcı eylemleri (update, INSERT ve delete).

A tablo INSTEAD OF tetikleyici belirli bir türde yalnızca bir sahip olabilir.

Tetikleyici izinler ve sahipliği

Tetikleyicileri tablo ya da görünüm üzerinde tanımlı oldukları şemada oluşturulur.Örneğin, tetikleyici Trigger1 üzerinde oluşturulan tablo HumanResources.Employee, tetikleyici şema tam adı İnsanKaynakları.Trigger1.

Tetikleyici oluşturma izinleri varsayılan üzerinde tetikleyici tanımlanmış, tablo sahibi sysadmin sabit sunucu rolü üyelerinin ve db_owner ve db_ddladmin sabit veritabanı rolleri ve transfer edilebilir değil misiniz.

Bir INSTEAD of tetikleyicisi üzerinde bir görünüm oluşturduysanız, Görünüm sahibi Ayrıca Görünüm ve tetikleyici tarafından başvurulan temel tablolar sahibi değil, sahiplik zinciri kırılmıştır.Görünüm sahibi tarafından sahip olunan temel tablo için tablo sahibi ayrı olarak gerekli izinleri bilerek için okunurken ya da güncelleştirilirken görünümü vermeniz gerekir.Aynı kullanıcı için hem görünümü hem de temel temel tabloların sahipse, diğer kullanıcıların izinlerini yalnızca değil her bir temel tablo görünümü vermek vardır.Daha fazla bilgi için bkz: Sahiplik Chains.

Bir tetikleyici oluşturmak için