并发控制与读写锁问题

47522341 2006-10-13 04:29:13
按照我的理解;
当用户A执行select语句选择表中的记录出来后,将会对该记录加一个读锁,使得其他用户只能对其执行select操作,而不能update;
否则,将会导致A用户选出的数据无效;

但刚才无意中发现;
A执行select * from tableA后;
在另外一台机器上,update,依然可以顺利修改。

有点茫然了。
是我的记忆和理解出了问题,还是要在数据库中执行某种设定后才能对数据进行锁定。
...全文
288 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
47522341 2006-10-13
  • 打赏
  • 举报
回复
自己找到了;
在联机帮助文档中:

Constant Description
DBPROPVAL_LM_NONE The provider is not required to lock rows at any time to ensure successful updates. Updates may fail when sent to the server for reasons of concurrency (for example, if someone else has updated the row).

47522341 2006-10-13
  • 打赏
  • 举报
回复
哪位兄弟能给解释一下;
ms sqlserver默认的锁定行为是什么?
并请提供资料出处!或测试方式。谢谢
47522341 2006-10-13
  • 打赏
  • 举报
回复
这么说,sqlserver的默认机制是不控制对数据记录的锁定;
那么,
岂不是会造成数据的不一致性等问题?
DengXingJie 2006-10-13
  • 打赏
  • 举报
回复
LZ:select * from tableA(UPDLOCK)這樣就跟你的想法差不多了
abc_sk 2006-10-13
  • 打赏
  • 举报
回复
可以UPDATE

34,587

社区成员

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

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