急急!怎样检查表中序号的连续性?

lzb008 2006-05-24 10:38:59
我有一个表里面的序号是:0001、0002、0003……这种格式的流水号,但由于插入时计算错误,表里的序号有跳号的。例如:0058 之后就0062了,这种情况很多,我想查出来,然后再生成插入时直接插入0059、0060、0061。而且查时还得查出两个跳号之间的差是多少?
请哪位高人帮帮我。小弟不胜感激!谢谢!
...全文
295 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
guanjm 2006-05-24
  • 打赏
  • 举报
回复


CREATE FUNCTION nocon(
@oid int
)RETURNS int
AS
BEGIN
declare @id int
set @id=0
select @id=count(1) from t where oid=@oid+1
if @id=0
set @id=1
RETURN @id
END
go
create table t
(oid int)


insert into t(oid)
select 1
union all
select 2
union all
select 3
union all
select 5
union all
select 6
union all
select 8
union all
select 10



select oid+1
from t
where dbo.nocon(oid)=1 and oid+1 not in(select oid from t) and oid+1<(select max(oid) from t)
order by oid

drop table t


看看 你在自己变通下



lzb008 2006-05-24
  • 打赏
  • 举报
回复
具体怎么写啊。还请指教!
zlp321002 2006-05-24
  • 打赏
  • 举报
回复
--可以考虑借用临时表,去分析连续号问题。

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧