对于表记录的锁定!请各位指点一下!谢谢!

努力偷懒 2004-08-29 04:51:34
在一次操作中,在该操作还没完成的时候,我想对某个表的某个记录进行锁定.例如:
我在一个服务里面选择某个员工,由于是多客户端的,因此我想对在程序里面选定了那个员工的记录进行锁定,别的客户端不能对该记录进行读取或者修改(同时想让别的客户端选择了该员工后提示这个员工已经被别人锁定,提示客户端选择别的员工!).我看过一下SQL的帮助,发现使用锁好像会耗费资源,(并发和开销成反比!)
请有关人员发表一下看法!以及能否给我个更好的实现方法!谢谢!
...全文
176 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
努力偷懒 2004-08-30
  • 打赏
  • 举报
回复
恩恩!根据solidpanther(╃╄╃我爱机器猫╄╃╄) 说的我也想过!就是做一个字段去记录当前记录被哪个操作ID使用!可以根据这个操作ID来判断当前谁在使用这个记录!恩!这个方法好像挺好,我现在先不考虑实现方法!不过我还是想想能不能用lock锁来实现!如果实在不行,用这方法还是挺好的!

恩!谢谢!继续让更多的人发表一下!吸取别人的经验!谢谢各位的指点!
solidpanther 2004-08-30
  • 打赏
  • 举报
回复
觉得一个并不完美的做法就是做一个记录操作的状态表,有人select就记录下来,其他的人访问的时候都检查是否有人访问,这样并不完美,但是如果给表加上了相关的主键,利用系统的约束来控制同时插入状态值的请求,比如,用户a,select了一条记录,用户b也要选这条记录,但是用户b判断是否有状态记录的时候,用户a还没写下状态值,其实这个时候用户a已经select了,所以会冲突,但加上状态表的约束,当用户b向状态表里插入标记的时候,系统会自动告诉他,已经有这条记录了,就ok了
cqdj 2004-08-30
  • 打赏
  • 举报
回复
除非你在数据库端写代码来实现,到现在我也没有找到好的方法。(我也遇到过)。
solidpanther 2004-08-30
  • 打赏
  • 举报
回复
锁表的操作如果很频繁的话,处理不好就容易死锁,你发个短信给zjcxc问问吧
Andy__Huang 2004-08-29
  • 打赏
  • 举报
回复
寫存儲過程,存儲過程用事務來處理。
zonelive 2004-08-29
  • 打赏
  • 举报
回复
是不是可以用@@LOCK_TIMEOUT=0来实现,
如果行被占用,就会返回一个错误代码
前端程序可以通过判断错误代码来显示提示
努力偷懒 2004-08-29
  • 打赏
  • 举报
回复
我锁定的时间是不知道时间的!解除锁定是在某个命令里面解除锁定!我看的例子都是锁定一段时间!

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧