每个结果行执行SQL

时间:2009-12-01 18:49:34

标签: sql function database-mail

我一直在谷歌搜索一下,但我似乎无法找到答案。我正在尝试在存储过程中使用SQL Server 2005中的数据库邮件,其中的想法是为查询中的每一行发送单独的邮件,每个邮件取决于驻留在行中的地址。

想象一下例如15到50行产品订单,其中包含以下数据: ID,CustomerName,CustomerEmail,ProductName,ProductCategory 。每行包含客户电子邮件以及产品类别。我需要使用他们自己行中的个人数据向每个客户发送确认电子邮件,以及根据产品类别向不同公司用户发送的实际订单邮件。

如何动态发送数据库邮件?

提前致谢!

编辑1:数据集等不是一个选项,必须在SQL Server 2005上独占运行。我想我将不得不查看游标。

3 个答案:

答案 0 :(得分:0)

使用DataSet将表放入内存 而不是运行foreach DataRow,获取邮件并发送它......

答案 1 :(得分:0)

您的意思是每次添加新行(例如下订单)吗?如果是这样,您可以在每次插入或更新行时使用Trigger发送电子邮件。

答案 2 :(得分:0)

不,不可能。发送数据库邮件是对存储过程的调用,这在查询和函数中都是不允许的。

您必须逐个发送每封邮件。您可以在存储过程中使用服务器上的游标,也可以在客户端中迭代该表。