2012-04-06 2 views
0

Мне нужно запланировать задачу, которая выполняется ежемесячно, которая будет запрашивать сервер sql, получать список писем и отправлять индивидуальные электронные письма всем в списке.SSIS получать электронные письма из базы данных и отправлять отдельные электронные письма

Я предполагаю, что мне нужно использовать SSIS для планирования месячной задачи, но я не уверен, что я должен выполнять всю работу на сервере sql и использовать хранимую процедуру и почтовую базу данных, или если я должен использовать SSIS для вызова исполняемого файла .Net, который выполняет всю работу?

Любые предложения о том, как это сделать?

+0

Какова природа письма? Если это отчет или отчет, подобный ssrs, может быть лучшим инструментом, со встроенным планированием и доставкой электронной почты. http://msdn.microsoft.com/en-us/library/ms160334.aspx – dkackman

+0

SSIS ничего не знает о планировании - эта ответственность является доменом SQL Agent. Если вы хотите или нуждаетесь в функциональности OOB для SSIS (ведение журнала, настройка и т. Д.), Используйте это. В противном случае я бы вызвал sp_send_dbmail как шаги в работе SQL Agent (без обслуживания). Если вам нужно решение для .NET, я бы выбрал PowerShell. Администраторы баз данных имеют тенденцию быть в порядке со сценарием, который они могут взломать (и не читать). Дайте им черный ящик EXE для запуска на сервере, и они смеют вас из здания. – billinkc

ответ

1

Лично я делал то же самое в SQL Server. Вы можете настроить SQL Mail и написать хранимую процедуру, которая вытащит адреса электронной почты. Затем вы можете просто использовать msdb.dbo.sp_send_dbmail и указать имя profile, список recipients, subject, attachment и т. Д. Все как опции.

Затем вы можете использовать раздел рабочих мест в SQL сервере, чтобы запустить этот sproc ежемесячно, еженедельно, ежечасно и т.д.

+0

было бы лучше сделать все это на сервере sql или создать консольное приложение в .Net, которое выполняет всю работу, а затем просто планировать запуск exe ежемесячно? – user1202606

+0

@ user1202606 - все зависит от вас и вашей команды разработчиков или разработчиков. Это то же самое, вам все равно нужно вызвать хранимую процедуру для получения данных (электронных писем), если вы можете сделать все это на стороне сервера sql, поскольку работа завершает это. Если не продолжить и создать приложение .net C# или vb.net, которое обрабатывает его и назначает. То же самое. – JonH

0

SQL Authority имеет хороший шаг за шагом о том, как это сделать из базы данных без использования SSIS , http://blog.sqlauthority.com/2008/08/23/sql-server-2008-configure-database-mail-send-email-from-sql-database/

После настройки вы можете использовать SQL Agent для планирования процесса, который обрабатывает и отправляет электронное письмо.