儲存過程模擬加鎖解鎖

2021-06-07 20:41:08 字數 903 閱讀 4486

alter procedure [dbo].[pro_get_sys_ordr_lock_info]( 

@ordr_head_seq 編號,

@ordr_typ_cd varchar(20)

)asbegin

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

)asbegin

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

加鎖就插入一條資料,解鎖就刪除一條資料

儲存過程解鎖

1.檢視是哪乙個過程被鎖住 查v db object cache檢視 select from v db object cache where owner 過程的所屬使用者 and locks 0 2.檢視是哪乙個sid,通過sid可以知道是哪乙個session 查v access檢視 select ...

unix c檔案加鎖解鎖

引數lock指標 引數lock指標為flock 結構指標,定義如下 struct flock l type 有三種狀態 f rdlck 建立乙個供讀取用的鎖定 f wrlck 建立乙個供寫入用的鎖定 f unlck 刪除之前建立的鎖定 l whence 也有三種方式 seek set 以檔案開頭為鎖...

ORACLE 009 儲存過程加鎖

最近碰到一種情況,需要限制某個儲存過程只能有乙個程序在執行,上乙個執行完畢後下乙個再執行。也就是類似與程式開發中的執行緒同步問題。彙總乙個下,可以通過如下方法來實現。1 設定乙個變數,或者表中的某個欄位為標識位,執行時設定為某個值,執行完後再設定為原來的值。這種方式的要求設定標識位的地方和判斷這個標...