我正在实施电子邮件队列系统。基本的想法是在sql ce Db中存储电子邮件,然后通过Windows服务读取它们并发送它们。
假设数据库中有200行我需要先获取10条记录,所以我需要OUTPUT子句以便我可以运行这样的
UPDATE MAILQUEUE Set STATUS='Fetched' where QueueID in (select top(10) QueueID from MailQueue where Status='Queued' order by QueueID asc)
**OUTPUT** deleted.*
如果无法做到这一点,我还可以考虑从数据库中永久删除行并处理它们,并将失败存储在FailQueue表中。在这种情况下,可以使用SqlCeTransaction类????
完成Select和Delete如果有更好的方法来实现这一点,请告知。
感谢所有
答案 0 :(得分:2)
在单个SqlCeTransaction中执行SELECT和UPDATE就可以了。