我也碰到过这个问题, 要不然就用队列像12306买票一样一个个的处理, 简单点就是写个页面 一次发100条并在数据库中标识下发送状态页面30秒钟刷新一次。
每次查都无法知道这是第几次, 这种逻辑不稳定, 何不添加一个起始行号呢.
declare @i int set @i=1 while @i<最大值 Begin select * from tb1 where id>=@i and id<@i+100 set @i=@i+100 wait for delay 等待时间 End
那你这样有一个问题,新的记录不断进来的时候,你的分页就会发生变化。就不是你当初的那个顺序了。并且不建议由数据库进行休眠,很有可能因为事务挂在那里时间过长造成等待或者死锁。
发一批,回写一个标记,表示已发送完成。 具体间隔多长时间,这个在你的程序中控制,数据库管不了这个事儿(或者说,通过数据库来控制,并不是理想的选择)
rownumber + waitfor delay '00:00:00' 是想做翻页?
34,837
社区成员
254,632
社区内容
加载中
试试用AI创作助手写篇文章吧