在SQl Server Compact 3.5中模拟OUTPUT子句的任何方法?

时间:2011-02-23 10:38:55

标签: sql .net-3.5 compact-framework sql-server-ce

我正在实施电子邮件队列系统。基本的想法是在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

如果有更好的方法来实现这一点,请告知。

感谢所有

1 个答案:

答案 0 :(得分:2)

在单个SqlCeTransaction中执行SELECT和UPDATE就可以了。