急问呢,两个用户同时对一条记录操作怎么办?

step 2001-09-27 12:23:16
sql server 中
如果一个用户点击某按钮了,去锁定对应一条记录,在还没有存盘之前,当另外一个用户点击该按钮想访问的时候,弹出消息,要求等待。
怎么实行呢?
请问怎么样能比较好的解决数据库并发问题?

好象就这样,
用户加锁一条记录,提交修改后释放该锁。同时有超时设置,超时后释放锁。
另一用户能知道该记录是否被加锁。
可以么? help~~
...全文
94 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mashansj 2001-09-27
  • 打赏
  • 举报
回复
select * from a for update;

select * from a for update of a.a;(a表的a列)

--新打开一个SQL*Plus窗口
conn test/test(test用户上的第二个会话)
delete from a;

此时,系统停顿状态,等待解锁,
只要在第一个窗口发出roll;或commit;命令,即可解除锁定状态。
step 2001-09-27
  • 打赏
  • 举报
回复
thanks, zhuzhichao
怎样具体操作呢?能麻烦详细些么。

比如下面这样能实现么?
SET LOCK_TIMEOUT 5000
select * from test where code='a'
返回一条记录

这时候另外用户马上执行这个语句
select * from test where code='a'
返回什么状态呢?没有记录?

sailerbai 2001-09-27
  • 打赏
  • 举报
回复
多线程编程不行吗!
zhuzhichao 2001-09-27
  • 打赏
  • 举报
回复
在一個事務中:
SET LOCK_TIMEOUT 5000 --設置死鎖時間為5秒
select * from Tablename with(holdlock);

34,589

社区成员

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

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