加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET或SQL Server 2008中的并发更新处理

发布时间:2020-12-16 07:28:31 所属栏目:asp.Net 来源:网络整理
导读:有一个名为Accounts的表,如下所示: AccountID AccountName AccountTotalMoney------------------------------------------- 1 Steven 600 3 Scott 800 但是用户可以同时更新行记录,如下所示: User A:UPDATE Accounts SET AccountTotalMoney=700 WHERE Acco
有一个名为Accounts的表,如下所示:

AccountID   AccountName   AccountTotalMoney
-------------------------------------------
  1           Steven           600
  3           Scott            800

但是用户可以同时更新行记录,如下所示:

User A:UPDATE Accounts SET AccountTotalMoney=700 WHERE AccountID=1;
User B:UPDATE Accounts SET AccountTotalMoney=900 WHERE AccountID=1;
User C:UPDATE Accounts SET AccountTotalMoney=1000 WHERE AccountID=1;
.
.
.

所以我想阻止多个用户同时更新同一条记录.
一个接一个.

我是这方面的新手.对不起,我的英语不好.提前致谢!

解决方法

有很多可能性.

[意见:我认为大多数Web应用程序都做乐观的并发处理]:

这里有一个关于乐观并发处理的好教程:
http://msdn.microsoft.com/en-us/library/bb404102.aspx

小摘要:

类似地,当两个用户访问页面时,一个用户可能正在更新记录时被另一个用户删除.或者,在用户加载页面和单击“删除”按钮之间,另一个用户可能已修改该记录的内容.

有三种并发控制策略可用:

>什么都不做 – 如果并发用户正在修改相同的记录,请让最后一次提交获胜(默认行为).?>乐观并发 – 假设虽然偶尔会出现并发冲突,但绝大多数时候这种冲突都不会出现;因此,如果确实发生冲突,只需通知用户他们的更改无法保存,因为另一个用户已修改了相同的数据.>悲观并发 – 假设并发冲突是司空见惯的,并且用户不会容忍因为另一个用户的并发活动而被告知他们的更改未被保存;因此,当一个用户开始更新记录时,将其锁定,从而阻止任何其他用户编辑或删除该记录,直到用户提交修改为止.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读