存储过程模拟加锁解锁

简介: ALTER procedure [dbo].[pro_get_sys_ordr_lock_info]( @ORDR_HEAD_SEQ 编号, @ORDR_TYP_CD VARCHAR(20) )as begin ...
ALTER procedure [dbo].[pro_get_sys_ordr_lock_info]( 
     @ORDR_HEAD_SEQ 编号,
     @ORDR_TYP_CD VARCHAR(20)
 )as
begin 
  SELECT count(1) AS IS_LOCK
   FROM T_SYS_ORDR_LOCK WHERE ORDR_HEAD_SEQ = @ORDR_HEAD_SEQ 
   AND ORDR_TYP_CD = @ORDR_TYP_CD
END

 

 ALTER procedure [dbo].[pro_set_sys_ordr_lock_info]( 
     @ORDR_HEAD_SEQ 编号,
     @ordr_typ_cd varchar(20), 
     @IS_LOCK VARCHAR(200), -- 1或0
     @LOGIN_USR_ID INT --登录用户ID     
 )AS
BEGIN  
 IF isnull(@IS_LOCK, 0) = 1
 BEGIN
  INSERT t_sys_ordr_lock(lock_usr_id, lock_dtim, ordr_head_seq, ordr_typ_cd)
  VALUES(@LOGIN_USR_ID, getdate(), @ordr_head_seq, @ordr_typ_cd)
 END ELSE
 BEGIN
  DELETE FROM t_sys_ordr_lock WHERE ordr_head_seq = @ORDR_HEAD_SEQ AND ordr_typ_cd = @ordr_typ_cd
 END 
END


加锁就插入一条数据,解锁就删除一条数据

相关文章
|
6月前
|
缓存 数据库
并发修改同一记录时需要加锁
并发修改同一记录时需要加锁
|
1月前
|
SQL 数据库
达梦数据库阻塞死锁及解锁
【10月更文挑战第6天】本文介绍了在达梦数据库中模拟和解决死锁的方法。首先通过创建表并插入数据但不提交事务,模拟了阻塞情况;接着利用V$TRXWAIT和V$SESSIONS视图查询阻塞信息,并通过SP_CLOSE_SESSION函数解决阻塞。最后讨论了死锁的成因及避免策略,强调了正确管理事务的重要性。
|
3月前
|
索引 关系型数据库 MySQL
锁与索引和释放锁时机
【8月更文挑战第1天】
54 1
|
前端开发 关系型数据库 MySQL
用户重复注册分析-多线程事务中加锁引发的bug
用户重复注册分析-多线程事务中加锁引发的bug
142 0
|
传感器 安全 定位技术
(5)(5.2) 解锁和加锁
(5)(5.2) 解锁和加锁
112 0
|
Java
JVM 内置锁 synchronized 关键字,偏向锁优化中的批量重偏向和批量撤销(上)
JVM 内置锁 synchronized 关键字,偏向锁优化中的批量重偏向和批量撤销
324 0
JVM 内置锁 synchronized 关键字,偏向锁优化中的批量重偏向和批量撤销(上)
|
Java
JVM 内置锁 synchronized 关键字,偏向锁优化中的批量重偏向和批量撤销(下)
JVM 内置锁 synchronized 关键字,偏向锁优化中的批量重偏向和批量撤销
363 0
JVM 内置锁 synchronized 关键字,偏向锁优化中的批量重偏向和批量撤销(下)
|
Oracle 关系型数据库 数据库
查询数据库锁,和解锁语句!
查询数据库锁,和解锁语句!
115 0