并发更新解决思路

并发更新应该算是典型的并发问题,看了一些资料,还是不确定自己的对不对,还请各位赐教。问题描述:5个客户端,

并发更新
应该算是典型的并发问题,看了一些资料,还是不确定自己的对不对,还请各位赐教。
问题描述:
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   id=@id
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 id=@id
if @@error <> 0 goto err_handle
commit tran aaa
return 0
err_handle:
ROLLBACK tran aaa
return 1
GO