在一个表里面存在很多的数据,有几百万条,且每天以万速度增长,所以查询起来相对缓慢,想通过重新创建标识列来规范ID列,在ID列上面重建索引.现在语句写出来了,出现了一个奇怪的问题,执行出来的ID列值全为23,大家帮忙看看
DROP INDEX GZ_TABLE.IX_GZ_TABLE_1--删除索引
Go
alter table GZ_TABLE  drop column ID --删除列
Go
alter table GZ_TABLE add [ID] int IDENTITY(1,1) not null--添加列
Go
CREATE  INDEX [IX_GZ_TABLE_1] ON [dbo].[GZ_TABLE]([ID]) ON [PRIMARY] --添加索引
GO

解决方案 »

  1.   

    是不是 select 语句的问题。新加的列换个列名试试,不要用 ID。
      

  2.   

    alter table GZ_TABLE add [TestID] int IDENTITY(1,1) not null--添加列
     换成这样还是不行  TestID列值还是23..
      

  3.   

    数据量太大导致语句执行起来就出错吗?
    但我在表设计那儿也按照“删除列--添加列--添加索引”的顺序做的话,可以自动加好标识列的,
    只是加的时候时间久一些而已,但也能按顺序加上来,不象我SQL语句执行出来值全是23,不明白~!继续请教~~