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

SQL中同时更新多行数据的,该如何处理

2012-02-05 
SQL中同时更新多行数据的timeteamIDindexrecordtime2011-12-09日班www12011/12/9 17:25:052011-12-09日班w

SQL中同时更新多行数据的
time team ID index recordtime
2011-12-09日班www12011/12/9 17:25:05
2011-12-09日班www32011/12/9 17:25:26
2011-12-09日班www42011/12/9 17:27:24

index是自动生成的,每次添加一条就自动加1,现在我删除了第2条,想让数据库里面的index重新排序,
变成:

 time team ID index recordtime
2011-12-09日班www12011/12/9 17:25:05
2011-12-09日班www22011/12/9 17:25:26
2011-12-09日班www32011/12/9 17:27:24

高手求解啊



[解决办法]
有两种方法: 
方法1: 
truncate table 你的表名 --這樣不但將數據刪除,而且可以重新置位identity屬性的字段。 

方法2: 
delete from 你的表名 
dbcc checkident(你的表名,reseed,0) --重新置位identity屬性的字段,讓其下個值從1開始 



[解决办法]

SQL code
declare @num int=0update tb set index=@num,@num=@num+1
[解决办法]
SQL code
create table qiujialongjjj(time date, team varchar(6), ID varchar(6), index_2 int, recordtime datetime)insert into qiujialongjjjselect '2011-12-09', '日班', 'www', 1, '2011/12/9 17:25:05' union allselect '2011-12-09', '日班', 'www', 3, '2011/12/9 17:25:26' union allselect '2011-12-09', '日班', 'www', 4, '2011/12/9 17:27:24'update aset a.index_2=b.rnfrom qiujialongjjj ainner join(select row_number() over(order by (select 0)) rn,* from qiujialongjjj) bon a.recordtime=b.recordtimeselect * from qiujialongjjjtime       team   ID     index_2     recordtime---------- ------ ------ ----------- -----------------------2011-12-09 日班     www    1           2011-12-09 17:25:05.0002011-12-09 日班     www    2           2011-12-09 17:25:26.0002011-12-09 日班     www    3           2011-12-09 17:27:24.000(3 row(s) affected) 

热点排行