DAO中删除表和记录及处理自动编号

删除表:CurrentDb.Execute "DROP TABLE [表名] "

批量删除指定记录

    strSql = "DELETE * FROM [表名] WHERE [lngNodeId]<>1"
    CurrentDb.Execute strSql

自动编号字段比较讨厌,如果你删除了记录之后再添加,记录编号会从删除的地方之后继续增加。比如你有10001条记录,删掉最后10000条,然后添第2条记录,记录编号就会是10002。解决这个问题的办法,就是造个一模一样的新表,把原始记录拷过去,把老表删了,把新表名改成老表名。下面这个例子的效果就把老表删的只剩一条记录,而且自动编号的记忆也被清除了:

上面这个办法想出来之后,到论坛上显摆,招致各位大侠的一致反对jhone99说,如果表非常大的时候,操作时间可能很长,因为我倒了两次表。Tiger_Zhao说,自己控制编号比较适合单用户操作:
1)新增时取 MAX(ID)+1 作为新的编号
2)删除时用一个事务做两步
 a) DELETE table1 WHERE ID = 10001
 b) UPDATE table1 SET ID = ID -1 WHERE ID > 10001

说,第一步直接这样做也可以
insert into c (id,num,weight) select max(id)+1,5,32 from c

总之,显摆的很失败。

 

 其他相关文章:DAO和ADO里批量删除记录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值