0

テーブルに挿入するたびに条件を確認した後、メールを送信する必要があるシナリオがあります。

  • トリガーは正しい方法ですか?

私の2番目の質問は、どのようなアプローチをとるかについてです

  • DB から直接メールを送信する必要がありますか。(注: 私の DB サーバーとメール サーバーは異なるネットワークにあり、ファイアウォール ルールの例外を作成する必要があるかもしれません)

  • CLR-sprocが必要ですか。DB から CLR-sproc を呼び出し、CLR-sproc がサービスを呼び出し、そこからメールを送信します。

より良いアプローチはありますか?

4

2 に答える 2

1

SQL Server DBMail と CLR proc の両方が、SMTP を使用して電子メールを送信します。では、なぜ複雑さを増すのでしょうか?

さらに、DBMail または CLR 経由で電子メールを送信するには、INSERT での処理が必要になります。DBMail はキューを使用するため、CLR プロシージャを実行するよりも影響が少ないことに注意してください。

トリガーはそれを行うための良い方法です。ただし、ストアド プロシージャを使用して、トランザクションの外部で送信された電子メールで ISNERT を実行することを検討してください (INSERT により、暗黙的なものになります)。トリガーを送信するということは、それがINSERT の暗黙的なトランザクションの一部であることを意味します。

セキュリティの観点から、SQLMachine は、DBMail を使用するか、CLR Proc によるサービス呼び出しを使用するかに関係なく、SMTPMachine にアクセスする必要があります。

于 2013-01-16T09:41:06.920 に答える
0

1)はい、トリガーはすべての挿入後にアクションを実行する正しい方法です

2)SQLサーバーにはデータベースメールと呼ばれる機能があり、これはあなたが望むことを実行するように見えます(私はそれを自分で使用したことはありませんが)

于 2013-01-16T09:29:27.613 に答える