加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQLSERVER 锁定记录,只允许单用户修改的例子

发布时间:2020-12-12 13:19:22 所属栏目:MsSql教程 来源:网络整理
导读:http://bbs.csdn.net/topics/300001895 锁定记录,只允许单用户修改的例子 ? create ? table ? #锁表(编号? int ) ? --代码: if?exists( select ? 1? from ? 编号= '你的编号' )? ?? return ? insert ? #锁表? values ( ) ? .....你处理的代码 ? delete ? wh
http://bbs.csdn.net/topics/300001895

锁定记录,只允许单用户修改的例子 ? create? table? #锁表(编号? int ) ? --代码: if?exists( select? 1? from? 编号= '你的编号' )? ?? return ? insert? #锁表? values ( ) ? .....你处理的代码 ? delete? where? '你的编号' -------------------------------------- --为了防止死锁,建议加时间: ? ,时间?datetime) ? --代码: '你的编号'? and? datediff(ss,时间,getdate())<5?? --如果锁的时候超过5秒,则是处理超时 )? return ? delete? #锁表 ? .....你处理的代码 ? '你的编号' --------------------------------------- --锁定记录,只允许单用户修改的例子: ? --创建测试环境 --创建测试表--部门表 部门(departmentid? name? varchar (10)) ? --记录锁定表 lock(departmentid? v_getdate? as? dt=getdate() go --创建自定义函数,判断记录是否锁定 function? f_chk(@departmentid? ) returns? bit as begin declare? @re? bit v_getdate lock? departmentid=@departmentid ???? set? @re=1 else @re=0 return (@re) end go ? --数据处理测试 if?dbo.f_chk(3)=1 ???? print? '记录被锁定' else begin begin? tran insert? into? (3,getdate()) update? 部门? set? name = 'A'? departmentid=3 departmentid=3 commit? tran end ? --删除测试环境 drop? 部门 v_getdate f_chk

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读