开发者

SQL Execute per each result row

开发者 https://www.devze.com 2022-12-13 11:08 出处:网络
I\'ve been googling around for a bit but I can\'t seem to find an answer to this. I\'m trying to use the Database Mail in SQL Server 2005 in a stored procedure where the idea is to send separate mail

I've been googling around for a bit but I can't seem to find an answer to this. I'm trying to use the Database Mail in SQL Server 2005 in a stored procedure where the idea is to send separate mail for each row in a query, each mail depending on an address residing in the rows.

Imagine for example 15 - 50 rows of product orders with the following data: ID, CustomerName, CustomerEmail, ProductName, ProductCategory. Each of the rows contains the customer email as well as the product category. I need to send a confirmation email to each of those customers using their personal data specific to their own rows, as well as the actual order mail to different company people depe开发者_如何学Cnding on the product category.

How can I send Database Mail dynamically like this?

Thanks in advance!

Edit 1: Datasets etc are not an option, this has to be run exclusively on SQL Server 2005. I suppose I'll have to look into cursors then.


No, is not possible. Sending database mail is an invocation of a stored procedure and this is not allowed in queries, nor in functions.

You must send each mail one by one. You can use a cursor on the server in a stored procedure or iterate the table in the client.


Get the Table into the memory using a DataSet and than run foreach DataRow , get the mail and send it...


Do you mean each time a new row is added (e.g. order is placed)? If so, you can use a Trigger to send the email each time a row is inserted or updated.

0

精彩评论

暂无评论...
验证码 换一张
取 消