当前位置: 代码迷 >> Sql Server >> 并发更新解决思路
  详细解决方案

并发更新解决思路

热度:96   发布时间:2016-04-27 20:09:38.0
并发更新
应该算是典型的并发问题,看了一些资料,还是不确定自己的对不对,还请各位赐教。
问题描述:
5个客户端,1个sever
依照id同时更新数据库的记录,增加id对应选举人的得票数
我写的存储过程如下:
CREATE   PROCEDURE   UpdateHongKongVoteNum  
@id   int   as
set   xact_abort   on  
begin   transaction   aaa
update   Info_HongKongVoterNum   with(xlock,paglock)   set   voteNum=voteNum+1   where   [email protected]
commit   tran   aaa
GO


------解决方案--------------------
CREATE PROCEDURE UpdateHongKongVoteNum
@id int as
set nocount on --加这句好些
set xact_abort on
begin transaction aaa
update Info_HongKongVoterNum with(xlock,paglock) set voteNum=voteNum+1 where [email protected]
if @@error <> 0 goto err_handle
commit tran aaa
return 0
err_handle:
ROLLBACK tran aaa
return 1
GO
  相关解决方案