• 主页
  • 基础类
  • 应用实例
  • 新技术前沿

假设有2条update语句同时对一个表中的同一行数据进行更新,SQL Server会怎么处理?

newlovedew 2014-11-13 11:16:42
rt---------------------------------------
...全文
553 点赞 收藏 9
写回复
9 条回复
吉普赛的歌 版主 2014年11月14日
其实这个东西不光要从技术上来看, 而且还要从业务上看。 比如:总经理正在修改明天的日程记录, 董事长也在修改明天的日程记录,  取记录的时候是同时的, 但总经理先修改完再保存, 董事长则稍后修改完再保存。  但最终修改的结果, 则是董事长(靠后)的了。 那总经理就郁闷了, 董事长到底知不知道我先事先改过什么了? 他知道的话, 为什么不跟我打个招呼就这样了?
回复 点赞
newlovedew 2014年11月13日
引用 1 楼 Tiger_Zhao 的回复:
没有正真的同时的,会排队、依次更新。
引用 2 楼 hleb231 的回复:
update 没什么问题的,等待而已
引用 3 楼 DBA_Huangzj 的回复:
先申请并获得锁的语句(准确来说是事务)先执行,另外一条就等待,直到这个完毕以后再执行,这是两个事务的情况,还要根据隔离级别而定
就是说在我自己的程序里不用去管update会不会造成冲突,只要我把更新条件写明白了就行
回复 点赞
發糞塗牆 2014年11月13日
先申请并获得锁的语句(准确来说是事务)先执行,另外一条就等待,直到这个完毕以后再执行,这是两个事务的情况,还要根据隔离级别而定
回复 点赞
hleb231 2014年11月13日
update 没什么问题的,等待而已
回复 点赞
Tiger_Zhao 2014年11月13日
没有正真的同时的,会排队、依次更新。
回复 点赞
jjx5373 2014年11月13日
要是两条语句前后还有别的操作,还有可能会死锁
回复 点赞
Trouble___Maker 2014年11月13日
没有真正的同时,都是要排队的。
回复 点赞
卖水果的net 版主 2014年11月13日
会排队,头一个处理完了,第二个才能处理,如果头一个没处理完,第二个就排着。
回复 点赞
發糞塗牆 2014年11月13日
默认情况下是的
回复 点赞
发动态
发帖子
MS-SQL Server
创建于2007-09-28

1.4w+

社区成员

25.3w+

社区内容

MS-SQL Server相关内容讨论专区
社区公告
暂无公告