你这样处理我是不怎么赞成。不过语句倒是好写:
update user
set usercode = right(cast(100000+cast(usercode as int)-1 as varchar),5)
where usercode > '00003'
update user
set usercode = right(cast(100000+cast(usercode as int)-1 as varchar),5)
where usercode > '00003'
何必一定要全部顺号呢?相关所有的表,所有的记录都要更新,如果记录很多效率很差的。而且你更新的一般都是主键,记录锁定上的开销也不小。有些单位喜欢把职员按一定的顺序来排(一般按职位高低来排,呵呵中国人的习惯),如果你想让职员有一定的顺序,那我建议你不要用这个主键来做,另外增加一个字段为forder,这个字段从1开始顺号,删除掉某个人时,只更新这个字段就行了,不需要更新主键。这样开销小很多。考虑一下。
楼上的方法很好,也是我常用的,这里还有一种可以参考:
---delete user where usercode=’00003’
update user
set usercode = replicate(‘0’,5-len(usercode-1))+convert(varchar(10),(usercode-1))
where usercode > '00003'
要删除多条数据怎么办?
我认为没有意思.
SQL 以上都说了,但是如果数据量大的话,考虑一下系统开销!
分是怎么给的呀?