sqlserver 死锁,事务(进程 ID 115)与另一个进程被死锁在锁资源上,并且已被选作死锁牺牲品。请重新运行该事务。

  1. 业务场景

本次业务场景是对一张表在同一个事务中首先进行了update操作,随后进行了select操作导致的死锁问题

  1. 解决方法

update语句操作中增加WITH (TABLOCKX),示例:

update v_treatment_record WITH (TABLOCKX) set is_del=1  where treatment_process_id =:treatmentProcessIds and init_date=:init_date and is_del=0

加上这个排他锁之后,这个死锁的问题变解决了。 参考

你可能感兴趣的:(sqlserver,数据库,java)