日期:2014-05-17  浏览次数:20330 次

未能解决的问题!!!!!!!!!!!!
插入如上表的编号以后,因为我表格的排序要用ischeck来排序,当我要在ischeck为2、3 中间插入一个值 ,也就是下面id为6的是我插入的一条语句,我想达到下面这张表达到的效果,其实就是给ischeck 重新编号我该如何写存储过程,效果如下表显示

id  name   ischeck
1   jack     1
2   tony     2
3   amanda   4
4   xiao     5
5   ming     6
6   tao      3

这样的存储过程怎么写?求各位帮忙!!谢谢!   

------解决方案--------------------
id  name   ischeck
1   jack     1
2   tony     2
3   amanda   4
4   xiao     5
5   ming     6
6   tao      3

按id排序有问题么?
------解决方案--------------------
6那个是你以为插入到2、3之间,但是没有任何标识,sqlserver不知道啊
------解决方案--------------------
這不是昨天的帖子的嗎?
難道你想取沒用過的最小值?
select top 1 b.number  from #tb a join master .dbo.spt_values b on a.ischeck <>b.number  and a.id =b.number 
where b.type ='P' and b.number >0

------解决方案--------------------
那就ischeck >=3的加1,然后再插入tao      3这个呗~~
------解决方案--------------------
先了解一下,你是如何实现插入到2、3之间?
------解决方案--------------------
我好像没看明白是什么意思
------解决方案--------------------
你要把数据,插入到2-3之间,这个好像很难实现。

因为,假如你直接把这条新的数据,插入到最后,也就是你上面的id = 6,而你的ischeck要排序为3,就很难来排序。如果想要实现,那么必须把原来的ischeck = 3的修改4,ischeck = 4的修改为5,为5的修改为6,然后这个ischeck才能是3