我不确定何时适合使用游标。
在运行某个更新某些表的存储过程后,我需要发送电子邮件。因此,如果
table1.field1 = "value" and
(select count(*)
from table1 join table2
on table2.table1_id = table1.id) > 20
然后需要为 table1 中满足这些条件的所有内容发送一封电子邮件。在电子邮件中我需要包含 table1.field2 和 table2.field3 等等......
我能想到的唯一方法是获取 table1 中满足这些条件的行数据集,然后使用游标遍历它。我以前从未使用过从 SQL Server 发送电子邮件,而且我不知道我的选择……我以前从未使用过游标(尽管我确实了解如何使用),因为我学会了避开它们。
谢谢。
编辑:
使用while循环:所以......我可能想将我需要的所有信息推入一个临时表(从table1中选择*(条件)),然后启动一个遍历结果数据每一行的while循环设置在我的临时表中。(WHILE i = 1 to (select count(*) from #temp) / assemble e-mail send e-mail / next)...那么参考/指向我应该是#temp的哪一行的最佳方法是什么用于每个循环迭代?我可以给#temp 一个身份(1,1)或使用row_number()......对吗?我猜?不过,似乎我只是想通过这样做来编写自己的光标?假设我们设置@subject = (select 'Site ' & field2 & ' has a value of ' & field1 from #temp where temp_id_or_row_number = @i) 然后为每个循环增加@i ...?