我习惯用pb,这种问题我会编一个小程序,里面设置2个datawindow
dw_1是select distinct parent from reply 目的是搜索所有有回复的主题编号
dw_2是select * from reply where parent =:条件编号 order by replyid
目的是用回复id大小顺序显示指定id的所有回复
在程序中循环dw_1,分别查询对应的回复信息,然后再用一个循环赋值顺序号,最后更新reply 表,并用最大顺序号回写到topic表对应字段
纯粹用SQL语句的方法没用过,全当是给你个思路吧,asp虽然没有这么方便,但是写个小程序也能应付了。
写个升级程序就可以了,升级时运行时间是会长一点,但也没那么严重,你的记录有多少呢?6位数?况且让它运行一次就可以了。
另外,感觉你这两个表里的rootid字段好像没什么用?
update topic
set floor=(select count(1) from reply where parentid=topicid)
这个来更新topic表
update a
from reply a, reply b
set a.floor=(select count(1)+1 from b where b.parentid=a.parentid and b.replyid
您试试看