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

这样如何避免?

楼主azsoft(Try my best)2003-12-03 19:44:34 在 MS-SQL Server / 基础类 提问

多人操作库存,如何避免保存时库存不足。  
  问题点数:20、回复次数:7Top

1 楼azsoft(Try my best)回复于 2003-12-03 20:18:35 得分 0

大力呢?Top

2 楼ljma(rick)回复于 2003-12-03 22:06:14 得分 10

是说的库存数量吧,   设计修改库存数量时加上条件,如数量为qty,   则where   qty-xxx(要减的值)>=0,   判断结果,没有修改记录则说明库存不足。Top

3 楼pengdali()回复于 2003-12-03 22:13:26 得分 10

create   table   #锁表(编号   int)  
   
  --代码:  
  if   exists(select   1   from   编号='你的编号')    
      return  
   
  insert   #锁表   values('你的编号')  
   
  .....你处理的代码  
   
  delete   #锁表   where   编号='你的编号'  
  Top

4 楼pengdali()回复于 2003-12-03 22:13:38 得分 0

1   如何锁一个表的某一行  
   
   
  A   连接中执行  
   
  SET   TRANSACTION   ISOLATION   LEVEL   REPEATABLE   READ  
   
  begin   tran  
   
  select   *   from   tablename   with   (rowlock)   where   id=3  
   
  waitfor   delay   '00:00:05'  
   
  commit   tran  
   
  B连接中如果执行  
   
  update   tablename   set   colname='10'   where   id=3   --则要等待5秒  
   
  update   tablename   set   colname='10'   where   id<>3   --可立即执行  
   
  2   锁定数据库的一个表  
   
  SELECT   *   FROM   table   WITH   (HOLDLOCK)    
   
   
  注意:   锁定数据库的一个表的区别  
   
  SELECT   *   FROM   table   WITH   (HOLDLOCK)    
  其他事务可以读取表,但不能更新删除  
   
  SELECT   *   FROM   table   WITH   (TABLOCKX)    
  其他事务不能读取表,更新和删除  
  Top

5 楼azsoft(Try my best)回复于 2003-12-03 22:49:37 得分 0

不用锁定记录,如何实行呢。  
   
  比如   客户端再写入数据时,先批量存入临时表,然后在批量存入库存表时进行判断,  
  去掉临时表中的大于库存的值,返回结果再通知给客户端。  
   
  这样行吗?  
   
  Top

6 楼pengdali()回复于 2003-12-03 22:55:42 得分 0

你这样  
   
  create   table   #锁表(编号   int)  
   
  --代码:  
  if   exists(select   1   from   编号='你的编号')    
      return  
   
  insert   #锁表   values('你的编号')  
   
  .....你处理的代码  
   
  delete   #锁表   where   编号='你的编号'  
   
  这样不是更好。  
  Top

7 楼azsoft(Try my best)回复于 2003-12-03 23:26:44 得分 0

你上面的代码,在取库存值的时候,如何处理?  
   
  这样处理呢?  
   
  如:在库存表里建一个   ykc   int   字段,下一个客户端在使用时就会去判断(sl-ykc)  
  也就是该客户端只能使用(sl-ykc)的值,然后保存到库存表里  
  现在有一个问题,在客户修改记录时   ykc的值也要响应增减,客户端多的情况下,  
  ykc   的值不好确定。Top

相关问题

  • 如何避免“”“”“”“”“”“”“”“”“”“”“”
  • 如何避免IllegalStateException?
  • 如何避免重画?
  • 如何避免连击Button
  • 如何将IP与Mac地址绑定,这样是不是就可以避免ip地址冲突了??
  • 如何避免图形跳闪?
  • 如何避免假信用卡付款
  • 如何避免重复字段
  • 如何避免重复编译?
  • 如何避免对话框关闭?

关键词

  • 代码
  • 客户
  • 执行
  • ykc
  • 库存
  • 值
  • 表
  • 编号
  • 客户端
  • 锁定

得分解答快速导航

  • 帖主:azsoft
  • ljma
  • pengdali

相关链接

  • SQL Server类图书

广告也精彩

反馈

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