首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

请问在一个表中插入新列并填充数据的有关问题

2012-01-21 
请教在一个表中插入新列并填充数据的问题我在一个现有表(T1)中新增一个ID字段,设定为自动增长,然后根据表T

请教在一个表中插入新列并填充数据的问题
我在一个现有表(T1)中新增一个ID字段,设定为自动增长,然后根据表T1中的“编号”字段的顺序来为ID字段填入数据,在查询管理器中这个语句应该怎样写啊。(表中共有10000条记录)

请懂的人帮帮忙。谢谢啦!

[解决办法]
如果你原来表中的数据的存储顺序是按编号列增大的顺序,则:

SQL code
create table t1(编号 int)insert into t1 select 1 union all select 5 union all select 19 union all select 22goalter table t1 add id int identity(1,1)select * from t1/*编号          id----------- -----------1           15           219          322          4(4 行受影响)*/godrop table t1
[解决办法]
SQL code
create table #t(n varchar(10));goinsert into #t select 'a' union allselect 'b' union allselect 'c' union all select 'd';--select * from #t;alter table #t add id int primary key identity(1,1);select * from #t;
[解决办法]
SQL code
alter table t1 add id identity(int,1,1) update t1 set id=编号
[解决办法]
SQL code
alter table ta add id int not null identity(1,1)
[解决办法]
SQL code
alter table t1 add id identity(1,1) update t1 set id=编号
[解决办法]
如果原表中存储的物理顺序并非按编号排列的,则:
SQL code
create table t1(编号 int)insert into t1 select 11 union all select 5 union all select 19 union all select 22 union all select 7goselect * into temp_t1 from t1 order by 编号alter table temp_t1 add id int identity(1,1)drop table t1goexec sp_rename 'temp_t1','t1'goselect * from t1/*编号          id----------- -----------5           17           211          319          422          5(5 行受影响)*/godrop table t1
[解决办法]
SQL code
alter table t1 add id int identity(1,1) update t1 set id=编号 

热点排行