2012-04-06 78 views
0

我需要安排一個每月運行的任務,該任務將查詢sql server,獲取電子郵件列表,並將單個電子郵件發送給列表中的每個人。SSIS從數據庫中獲取電子郵件併發送單個電子郵件

我假設我需要使用SSIS來安排每月任務,但我不確定是否應該在sql server中完成所有工作並使用存儲過程和數據庫郵件,或者如果我應該使用SSIS調用完成所有工作的.Net可執行文件?

有關如何做到這一點的任何建議?

+0

電子郵件的性質是什麼?如果是報告或報告類似的ssrs可能是一個更好的工具,內置調度和電子郵件傳遞。 http://msdn.microsoft.com/en-us/library/ms160334.aspx – dkackman 2012-04-06 18:18:50

+0

SSIS對調度一無所知 - 責任是SQL Agent的領域。如果你想要或需要SSIS的OOB功能(日誌記錄,配置等)使用它。否則,我會調用sp_send_dbmail作爲SQL代理作業中的步驟(少維護)。如果你需要更多的.NET感覺解決方案,我會去PowerShell。數據庫管理員傾向於使用可以破解的腳本(而不是讀取)。給他們一個黑盒EXE在服務器上運行,他們笑你走出大樓。 – billinkc 2012-04-06 20:53:14

回答

1

就我個人而言,我在SQL Server中完成了相同類型的事情。您可以設置SQL Mail並編寫一個存儲過程來提取電子郵件地址。然後,您可以簡單地使用msdb.dbo.sp_send_dbmail並提供profile名稱,recipients的列表,subjectattachment等作爲選項。

然後你可以使用SQL Server中的工作部分爲每月運行此存儲過程,每週,每小時等

+0

最好是在sql server中完成所有工作,或者在.Net中創建一個控制檯應用程序來完成所有工作,然後安排每月運行的exe文件? – user1202606 2012-04-06 20:03:19

+0

@ user1202606 - 這一切都取決於你和你的DBA或開發團隊。它同樣的東西,你仍然需要調用一個存儲過程來獲取數據(電子郵件),如果你可以在SQL Server端做所有的事情,就像一個工作包裝它一樣。如果不能繼續並創建一個.net c#或vb.net應用程序來處理它並安排它。同樣的事情真的。 – JonH 2012-04-09 12:11:32

相關問題