create table aa(a int,cc timestamp)--比如有3个数据:
insert aa (a) values(1)
insert aa (a) values(2)
insert aa (a) values(3)
--这时有一个人查看表:
select * from aa--这时另一个人又改了表的a字段
update aa set a=5 where a=1--但别人不知道改了a字段,但他可以通过时间戳,来区分,那条记录被修改了
select * from aa

解决方案 »

  1.   

    用"时间戳(timestamp)"的数据项来控制并发性。 
       每张表中都有一个时间戳的数据列,当Insert语句或Update语句对数据行作修改时该列自动被修改为当前时间。
        当你要作修改时,where子句可检查时间戳列在查询时和修改时两个值是否相符,以此来确保你作出的修改不会覆盖别人的修改,因此这种确认方式与keyandUpdateableColumns选项相同。 即使两个用户对同一行的不同列作修改,后一个修改者也将失败。
        在常用的关系型数据库中Sybase和Microsoft的SQLServer支持时间戳的使用。