怎样处理两人同时操作一条数据的问题?SQLServer

比如车站售票员售票,A售票员查到有10号座的车票,售票员B也同时查到,那么此时A开始把10号座的票卖了,B也卖了,这时事物怎样处理?现在有10个用户都在录入单据,比如出库... 比如车站售票员售票,A售票员查到有10号座的车票,售票员B也同时查到,那么此时A开始把10号座的票卖了,B也卖了,这时事物怎样处理?

现在有10个用户都在录入单据,比如出库单,现在大家看到的库存都是50,大家的单据都可以录入,可是如果有一个录入后,其他的人都不符合录入的条件,那么这十个人都录入完了,现在保存到数据库,数据库的库存不允许小与0,那么是否只给第一个用户的数据保存到数据库中,而其他的都在录入完了之后一个个的提示,数据无效呢?他开始录入的时候可是数据都有效的
我这个跟一般的数据还不同。第一个人对条形码为10000的数据进行操作,100000在数据库里有5,6条相关数据,而且他还可以对数据进行插入。第2个也对这号为10000的进行操作。。。
所以简单的加flg不可行。。。
展开
 我来答
yyhust1
推荐于2018-04-24
知道答主
回答量:29
采纳率:0%
帮助的人:6.2万
展开全部
我的理解是不能同时处理同一条数据。车票例,应当是谁先处理谁成功。
我们简单举个例子:
车票这个对象,我们简单分析一下属性
车票表
编号 车票号、卖否、卖出时间、售票员
其中编号为主键
这张表中,卖否的默认值为 :否
方案一
update 车票表 set 车票号='车票号'+'一个标志', 卖否='是',卖出时间=getdate(),售票员='张三'
where 车票号='车票号' and 编号='编号'
双方同时卖票也会有update先后之分,这样就会造成谁先update谁成功。
update后,让系统返回一个值能说明是否update成功,即可免去两地打印同一张票的现象了。
方案二
添加一张表
已卖车票表
结构需要与车票表相同或根据需求增加字段
在车票表上做一个update的触发器
当update车票表的 卖否从'否' 变成'是' 后,将该条记录插入 已卖车票表中,并删除该条记录。
车票表删除了记录当然其他人也就没办法去update了。
另外,你也需要研究一下数据库的锁类型。
a5202003
2009-08-10 · TA获得超过2249个赞
知道大有可为答主
回答量:1885
采纳率:75%
帮助的人:595万
展开全部
设置一个标志字段,bit型,如果有人要编辑这条记录,那么给他这个字段设置为1,编辑完成后或者退出编辑后设置为0.这样就都可以实现锁定了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e6ea01f
2009-08-10 · TA获得超过449个赞
知道小有建树答主
回答量:425
采纳率:0%
帮助的人:543万
展开全部
你可以试着给表加锁,排他锁、共享锁什么的,待一人操作完成后再解锁,你找找加锁的例子参考参考
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式