• 每天10分钟学习事务与并发(Part 4)

    Step2.在Connection B中更新OrderDetails表中产品2的订单明细,并保持事务一直打开:-- Connection 2BEGIN TRAN; UPDATE Sales.OrderDetails SET unitprice = unitprice + 1.00 WHERE productid = 2;这时Connection A对订单明细表的产品2请求了排它锁。SQL Server通常会在几秒钟之内检测到死锁,并从这两个进程中选择一个作为牺牲品,终止其事务。通过交换其中一个事务的操作顺序,就可以避免发生这种类型的死锁。例如,假设Connection B中的事务有两条语句要对产品5进行筛选,Connection A中的事务要对产品2进行处理,那么他们就不应该有任何冲突。到此,每天10分钟学习T-SQL及事务与并发的系列文章就结束了,相信你一定学有所获!
公告

欢迎访问 码农俱乐部  点击这里设置您的邮箱  可以接收站内跟帖、回复邮件提醒,不错过任何一条消息。

关注公众号订阅更多技术干货! 码农俱乐部