同时 更新同一表两条记录

来源:百度知道 编辑:UC知道 时间:2024/07/05 02:43:36
我做的是一个 ASP网页
积分兑换的一个页面
同时更新第一条记录+1 第二条记录-1 2条不同的速度
怎么样才能实现

我的想法是这样
知道不行
sql="update biao set inhj='"&rs("inhj")+1&"' where username=1

sql="update biao set inhj='"&rs("inhj")-1&"' where username=2

这样的
补充
是2个字段
比如
张三 送了 李四 一个积分

张三 积分+1

李四 积分-1
求这段 更新语句

无论如何同时,总归在数据库中更新时还是有先后的!

在这里,要做到数据的一致性,只需要用一个事务管理就好了,就是把这两句Update语句放在一个事务中处理,即可以确保它们同时提交同时成功,或者同时不成功(回滚)。

具体写法请查看一下SQL的 BEGIN TRANSACTION 的帮助。简单的写法就是:
DECLARE @error1 int, @error2 int
BEGIN TRANSACTION
UPDATE …… where username=1
set @error1=@error
UPDATE …… where username=2
set @error2=@error
if @error1=0 and @error2=0
COMMIT TRANSACTION
else
ROLLBACK TRANSACTION

where username=1 or username=2

sql="update biao set inhj=inhj+1 where username=1"

sql="update biao set inhj=inhj-1 where username=2"

sql1="update biao set inhj=inhj+1 where username=1"
conn.Excute(sql1)
sql2="update biao set inhj=inhj-1 where username=2"
conn.Excute(sql2)

或者
sql="update biao set inhj=inhj+1 where username=1 "
sql=sql&" update biao set inhj=inhj-1 where username=2"
conn.Excute(sql)

提前做一个计数器变量,然