sql server 2000 安装sp3后的怪异现象 谁给解决一下啊?

zhangtao5038 2011-08-26 12:55:38
sql server 2000 安装了sp3补丁后,用下面的sql创建了一个SerialTable表,
create table SerialTable(Number int Identity(0,1) not null ,Nullity Char(1)) ;
设置number字段是加一自动增长的,

在serialtable中用下面sql插入一条数据时,有时候这条数据不会添加到最后一行,会插入到前面几条数据之间。
insert into SerialTable(nullity)values('A') ;

比如说用select * from serialtable ;查询这个表,
前面五条数据的number值是1,2,3,4,5
再插入一条数据后查询出的结果是:1,2,3,6,4,5
新插入的数据也就是number为6的数据被插入到了3的后面,
我想要的是要插入到5的后面。
这是怎么回事啊?谁能帮我解决一下。

这个数据库是遗留下来的老库,之前的软件程序代码是要取出这个表的number最大值做另外一个表的主键,
取最大值时使用select number from serialtable得到list ,然后取list的最后一个值为最大值,
由于上面说道的这种情况,list的最后一个值就不是最大值了,所以程序报错。

在解决办法中不能更改以前程序的代码,也不能更改sql语句,只能更改这个表,
并且改后的这个表还要符合我上面说的业务逻辑。

这个问题出现在我安装了sp3后,不知道和sp3有没有关系。我想解决的是怎样把新数据插入到数据库的最后。
之前的程序使用c++做的,我现在在这个数据库的基础上要用java做一个新程序,所以sp3是必须装的。
...全文
56 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
nzperfect 2011-08-26
  • 打赏
  • 举报
回复
create clustered index ix_number on SerialTable(Number)

nzperfect 2011-08-26
  • 打赏
  • 举报
回复
为列Number建立聚集索引.
唐诗三百首 2011-08-26
  • 打赏
  • 举报
回复
3个方法:

1.直接装SQL2000 SP4试试..

2.建聚集索引SerialTable(Number).

3.select * from SerialTable order by Number
--小F-- 2011-08-26
  • 打赏
  • 举报
回复
安装SP4试下

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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