SQL Server для отправки электронной почты с уведомлением о данных, вставленных в таблицу - параметры? - PullRequest
1 голос
/ 22 марта 2012

У меня есть база данных SQL Server, которая совместно используется несколькими веб-сайтами ASP.NET (VB.NET), в базе данных есть таблица, в которой хранятся запросы клиентов. Я хочу предоставлять уведомления по электронной почте, информирующие о новых запросах, чтобы привлечь людей в организации (и, возможно, поместить некоторые данные запроса в тело письма). Пожалуйста, кто-нибудь может изложить мои варианты с точки зрения того, как это может быть реализовано?

Мои мысли:

  1. SQLMail
  2. База данных почты
  3. Хранимая процедура VB.NET с использованием библиотеки System.Net.Mail?
  4. Другие варианты?

Вариант 3 кажется желательным, потому что я знаю, как это сделать в VB.NET, и он тривиален.

  • Какие у меня есть другие варианты?
  • Какие предостережения?
  • Могу ли я сделать это в режиме реального времени, то есть триггер (громкость вставок низкая)?
  • или жизненно важно, чтобы это было сделано в пакете, то есть в работе?

Любая помощь очень приветствуется! Спасибо.

Ответы [ 2 ]

5 голосов
/ 22 марта 2012

Между 1), 2) и 3) стоит рассмотреть только 2). 1) мертворожденный, использует устаревшую функцию, печально известную своими проблемами и проблемами. 3) плохая идея, потому что она нарушает согласованность транзакций (почта SMTP отправляется , даже если вставка откатывается ) и является причиной снижения производительности, так как вызывающая сторона (предположительно, ваша веб-страница отображается) должна ждать, пока завершение обмена SMTP (т.е. синхронно). Только 2) обеспечивает согласованность транзакций и является асинхронным (не блокирует вызывающего до завершения SMTP).

Обычно, хотя такую ​​задачу лучше делегировать задаче служб Reporting Services. Вы должны создать Data-Driven подписку с электронной почтой . Это работает "из коробки", не нужно изобретать велосипед.

1 голос
/ 22 марта 2012

Я работал с подобной ситуацией, и решение, которое я использовал, заключалось в том, чтобы служба Windows C # проверяла очередь заданий сервера SQL каждую минуту. Эта очередь заданий будет включать такие задания, как отправка электронного письма. Затем вы можете использовать TRIGGER на вашем столе, чтобы вставить новое задание «Email Alert», которое будет получено в следующем цикле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...