SQL Server中Update的用法

作者:佚名 来源:zxbc.cn 时间:2008-12-29 13:57:00 

在表中有两个字段:id_no (varchar) , in_date (datetime) ,把in_date相同的记录的in_date依次累加1秒, 使in_date没有相同的记录。

以下为原始的数据:

id_no in_date

5791 2003-9-1 14:42:02

5792 2003-9-1 14:42:02

5794 2003-9-1 14:42:02

5795 2003-9-1 14:42:03

5796 2003-9-1 14:42:03

5797 2003-9-1 14:42:03

5831 2003-9-1 14:42:04

5832 2003-9-1 14:42:14

5833 2003-9-1 14:42:14

结果为:

id_no in_date

5791 2003-9-1 14:42:02

5792 2003-9-1 14:42:03

5794 2003-9-1 14:42:04

5795 2003-9-1 14:42:05

5796 2003-9-1 14:42:06

5797 2003-9-1 14:42:07

5831 2003-9-1 14:42:08

5832 2003-9-1 14:42:14

5833 2003-9-1 14:42:15

处理的方法:

--建立测试环境

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

标签:
0
投稿

猜你喜欢

  • SQL server使用自定义函数以及游标

    2011-11-03 17:26:27
  • Javascript命名禁区[110407.updated]

    2011-04-28 09:48:00
  • 学习ASP的理由 分析小结

    2011-02-26 10:54:00
  • IE8 的 noscript 标签 Bug

    2009-08-18 12:37:00
  • Session.TimeOut的最大取值是1440,超出会报错

    2011-03-31 11:19:00
  • 浅谈信息可视化

    2010-03-10 10:55:00
  • 用err.raise自定义错误信息

    2008-02-20 12:48:00
  • 跨浏览器的本地存储(一):userData behavior

    2008-08-05 18:13:00
  • asp函数InstrRev()介绍及获取文件名例子

    2007-11-19 19:01:00
  • sql ntext数据类型字符替换实现代码

    2011-09-30 11:08:00
  • ASP分页类(支持多风格变换)

    2011-04-08 10:39:00
  • Asp定时执行操作 Asp定时读取数据库(网页定时操作详解)

    2011-03-17 11:04:00
  • document.execCommand() 解析

    2007-11-13 17:22:00
  • HTML邮件的又一点思考

    2009-05-06 13:33:00
  • 如何用SA-FileUp上传一个单纯的HTML文件?

    2010-05-18 18:29:00
  • asp如何编写一个DNS LOOKUP程序?

    2009-11-07 18:47:00
  • XML教程—编写结构完整的XML文档

    2008-10-11 13:43:00
  • SQL SERVER 建立索引

    2010-07-02 21:01:00
  • sqlserver 触发器学习(实现自动编号)

    2012-10-07 10:58:03
  • 潜谈产品设计中的可用性和可访问性

    2009-01-18 12:47:00
  • asp之家 网络编程 m.aspxhome.com