CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

这样锁定会不会出现同时读取一条记录的情况?怎么改?

楼主dfcheng(飞翔鱼)2005-06-02 18:38:24 在 MS-SQL Server / 基础类 提问

下面sql语句   获取第一条数据后,马上将该条数据的lockedstatus   位置为1来防止其它人读取,但实际运行中我发现还是有同时读取的情况,用什么锁可以做到  
   
  --开始事务  
  begin   tran  
  --获取第一条数据的id  
  select   @cid=PK_CustomerId   from   T_CustomerData     where   PK_CustomerId   in   (   select   top   1   PK_CustomerId   from   T_CustomerData   where   FK_ProjectId=@ProjectId   and   LockedStatus=0)  
   
  //更新该条数据的lockedstatus位  
  update   T_CustomerData   set   LockedStatus=1   where   PK_CustomerId=@cid  
   
  //获取该条数据  
  select   *   from   T_CustomerData   where   PK_CustomerId=@cid  
   
  commit   tran 问题点数:0、回复次数:9Top

1 楼yjdn(人形机器)回复于 2005-06-02 18:44:46 得分 0

读取数据是共享所,是可以让别人读到的,  
  排它锁就不允许别人操作Top

2 楼duanduan1122(俺村俺帅!!!)回复于 2005-06-02 18:59:07 得分 0

1.一个数据上可以加任何数量的共享锁  
  2。但是一个数据上只能加一把独占锁。Top

3 楼dfcheng(飞翔鱼)回复于 2005-06-02 19:16:17 得分 0

帮我改改吧Top

4 楼dfcheng(飞翔鱼)回复于 2005-06-02 21:03:28 得分 0

邹建大哥呢Top

5 楼dfcheng(飞翔鱼)回复于 2005-06-03 10:44:24 得分 0

顶一下Top

6 楼bflovesnow()回复于 2005-06-03 14:10:26 得分 0

hehe.Top

7 楼dfcheng(飞翔鱼)回复于 2005-06-03 15:09:37 得分 0

he什么   ,帮忙呀Top

8 楼wyb0026(小小)回复于 2005-06-03 15:42:15 得分 0

--试一下这个在from   子句加入with(XLOCK)  
   
  begin   tran  
  --获取第一条数据的id  
  select   @cid=PK_CustomerId   from   T_CustomerData   with(XLOCK)   where   PK_CustomerId   in   (   select   top   1   PK_CustomerId   from   T_CustomerData   with(XLOCK)   where   FK_ProjectId=@ProjectId   and   LockedStatus=0)  
   
  //更新该条数据的lockedstatus位  
  update   T_CustomerData   set   LockedStatus=1   where   PK_CustomerId=@cid  
   
  //获取该条数据  
  select   *   from   T_CustomerData   where   PK_CustomerId=@cid  
   
  commit   tran  
  Top

9 楼dfcheng(飞翔鱼)回复于 2005-06-03 16:25:28 得分 0

能不能只用行级锁Top

相关问题

  • 一张数据表存储万条记录会不会影响读取???
  • 在C#中如何读取记录的同时锁定(让其他用户可以访问但无法修改)
  • 如何读取IE的历史记录?
  • 读取文本记录问题!!!!!!!!!!!11111
  • 读取文本记录问题!!!!!!!!!!!!!
  • delphi如何读取xml中的记录
  • 如何读取一周记录呀?
  • 新手求教:怎么读取记录?
  • 读取记录排序的问题,急
  • 读取记录排序的问题,急

关键词

  • 数据
  • lockedstatus
  • customerdata
  • projectid
  • customerid
  • pk
  • xlock
  • 获取
  • cid
  • tran

得分解答快速导航

  • 帖主:dfcheng

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo