--建立测试环境
create table a(id_no varchar(8),in_date datetime)
go
insert into a select "5791","2003-9-1 14:42:02"
union all select "5792","2003-9-1 14:42:02"
union all select "5794","2003-9-1 14:42:02"
union all select "5795","2003-9-1 14:42:03"
union all select "5796","2003-9-1 14:42:03"
union all select "5797","2003-9-1 14:42:03"
union all select "5831","2003-9-1 14:42:04"
union all select "5832","2003-9-1 14:42:04"
union all select "5833","2003-9-1 14:42:04"
union all select "5734","2003-9-1 14:42:02"
union all select "6792","2003-9-1 14:42:22"
union all select "6794","2003-9-1 14:42:22"
union all select "6795","2003-9-1 14:42:23"
union all select "6796","2003-9-1 14:42:23"
union all select "6797","2003-9-1 14:42:23"
union all select "6831","2003-9-1 14:42:34"
union all select "6832","2003-9-1 14:42:34"
union all select "6833","2003-9-1 14:42:54"
union all select "6734","2003-9-1 14:42:22"
go
--生成临时表,按照in_date排序
select * into # from a order by in_date
--相同的时间,加一秒。加完了不带重复的
declare @date1 datetime,@date2 datetime,@date datetime
update #
set @date=case when @date1=in_date or @date2>=in_date
then dateadd(s,1,@date2) else in_date end,
@date1=in_date,
@date2=@date,
in_date=@date
--更新到基本表中去
update a set a.in_date=b.in_date from
a a join # b on a.id_no=b.id_no
select * from a
drop table #,a |