排序问题(100分)

  • 主题发起人 主题发起人 yunxi126
  • 开始时间 开始时间
Y

yunxi126

Unregistered / Unconfirmed
GUEST, unregistred user!
一个int自增字段,例如我已有10条记录,1,2,3,4,5,6,7,8,9,10
但我删除5后,再增加记录时,如何让数据补上5而不是11.
 
插入先查询找最大的,让你插入的值总比最大的多1。
 
不是这个意思。。。。
 
不太明白你的意思,你可以这样啊:
把你所删的放入出境一个数组中啊!
 
为什么要删除呢?应该不影响什么吧.
如果想补上已经删掉的id,那就不要用自增字段了.
或者自己写一个自增的函数.
 
笨的方法就是放另一个表格记录你删除过的记录号.下次插入时排序就可以了.
 
你的ID连续的数组,数据库,还是什么啊,,不同的方法也不同。
 
沉了. 自已顶一下. 我的是数据库.SQL里面的.
 
另建一个INT字段也行.达到这种率果就可以.
例如我已有10条记录,1,2,3,4,5,6,7,8,9,10
但我删除5后,再增加记录时,如何让数据补上5而不是11.
 
在表里增加一个标志字段,标志是否是删除.当删除5的时候把5的标志位改变一下就好了.在增加的时候,找最小的一个ID.更新,就OK了.
 
多人接受答案了。
 
create function F_inc()
returns int
as
begin
declare @n int
select @n=isnull(min(id),0)+1 from n1 A where (A.id+1) not in (select id from n1 B)
return @n
end

drop table n1
go
create table n1(id int default dbo.F_inc(),num int)

insert into n1(num) select 1
union select 2
union select 3
union select 4
union select 5
union select 6
union select 7


delete from n1 where num=2 or num=6

insert into n1(num) select 11
insert into n1(num) select 100
go

select * from n1


楼主这么块就揭帖了...
我写了一个函数,你可以试试.实现类似自增函数的效果.
 
后退
顶部