C# で SQL Server 2008 Express の INSERT トリガーを作成する場合: 以下の SqlTrigger 注釈が必要であることがわかりました。
[SqlTrigger(Name = "SomeMethod", Target = TABLE_NAME, Event = "INSTEAD OF INSERT")]
public static void SomeMethod() { ... }
ターゲット仕様は厄介な要件のようです。このトリガーをさまざまなテーブルで実行できるようにしたいと考えています。ターゲットを指定しないようにしたり、SQL の作成時にオーバーライドしたりする方法はありますか?
この質問に似ています: SQL CLR トリガー - ターゲット/テーブル名を取得 しますが、ターゲットを動的に設定できるようにしたいと考えています。
これを調査する理由は、動作が悪いレガシーコードがあるためです。アセンブリトリガーをシャットダウンせずに、潜在的に問題を診断できるようにしたいと考えています。理想的には、目的のインサートをハイジャックし、いくつかの診断を行ってから、元のアセンブリに戻します。この Target パラメーターによって、これを行うことが制限されていると思います。