2009-12-01 96 views
0

我一直在搜索一下,但我似乎無法找到答案。我試圖在存儲過程中使用SQL Server 2005中的數據庫郵件,其中的想法是爲查詢中的每一行發送單獨的郵件,每個郵件取決於駐留在行中的地址。SQL執行每個結果行

想象一下例如15-50行的產品訂單,其中包含以下數據:ID,CustomerName,CustomerEmail,ProductName,ProductCategory。每行都包含客戶電子郵件以及產品類別。我需要發送一封確認電子郵件給每個這些客戶,使用他們自己的行專用的個人數據,以及根據產品類別實際訂購郵件給不同的公司人員。

如何以這種方式動態發送數據庫郵件?

在此先感謝!

編輯1:數據集等是不是一個選項,這必須在SQL Server 2005上專門運行。我想我必須看看光標然後。

回答

0

不,不可能。發送數據庫郵件是存儲過程的調用,這在查詢中和函數中都是不允許的。

您必須逐一發送每封郵件。您可以在存儲過程的服務器上使用遊標,或者迭代客戶端中的表。

+0

回到這個。是的,謝謝你,一年來,我一直不知道遊標是什麼,但是在你的建議之後,我很快就知道了這件事。 :) – Kahn 2009-12-05 15:10:28

0

獲取表到使用DataSet ,比運行的DataRow的foreach內存,收郵件,並將其發送...

0

你每次添加一個新行時間平均(如訂單時)?如果是這樣,每次插入或更新行時,您都可以使用Trigger發送電子郵件。

+0

有一項工作每隔幾個小時運行一次,需要檢查所有新行。我認爲觸發器是做這件事的好選擇,但我不確定在數據足夠完整以用於郵件發送之前,如何應對其他大量需要在那裏的數據。實際的桌子在整個地方都有關係,所以根據觸發器可能發生的事情太早而定。 – Kahn 2009-12-01 20:19:54