请教各位SQL SERVER高手,小弟有一个问题,请帮忙解决! supsuccess(口气不小) 问得好,有占位标志哦!,有的话该怎么样? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果未使用为1,已使用为0begin tranupdate 座位表 set 占位标志 = 占位标志 - 1,@IsFree = 占位标志 where 座位 = 座位if @IsFree = 0 begin rollback raiserror 50999 '已使用了!' return -1 end commit Chiff(~o~) 你有没有考虑过收银不成功时,而你在选择中已经设置了占位标志,怎么可以将占位标志设置回原来的值呢?或者如果在选择完成收银开始时突然发生停电,怎么办? supsuccess(口气不小) 你能否讲清楚点,我不太明白我的座位状态FLAGS有三个状态:0表示为空座位,7表示为临时选择状态,2表示已经售出。 即选择是由0变为7,而收银后将7变为2,但是就是担心收银时,发生意外,如断电或者执行收银失败时,座位的状态还是7,而不是变回原来的0 要达到我这个目的,应该怎么办? 你可以把从一笔业务开始到一笔业务结束所有修改数据的语句放在一个事务里面。任何一个环节出错了,便rollback,这样就相当于什么都没修改一样。只有所有的改动都没问题,才执行commit永久提交 Chiff(~o~)你好, 这是两个过程,选择与收银,用户在选择时,与系统发生交互,在收银时也要发生交互。当作一个过程实现,就必须在收银后才执行这个过程,这样的,如果发生重位,才来提示用户,是不是晚了点。 如果你用的是oracle数据库就很好办了,用其中的sequence object Chiff(~o~) 很感谢你的帮忙,但是我还是有问题,你帮我吧!”而且,在这个事务的最后加一条语句,就是把占位标志改为2.“ 这一句我不明白,你的意思是不是座位状态从2变为1再变为2再变为0 Chiff(~o~) 你的QQ号是多少,我们在QQ上商量好不好? softlife(E无所有) 对不起,我不上QQ的。你可以发消息或邮件给我[email protected] 给看看 这个语句为啥不能在mysql中批量执行 ROW_NUMBER 问题!!急急急! 如何将一个记录集的field.name放在一个新的记录集作为record 模糊查询问题 求一个SQL语句写法 請教一條SQL語句. 字符处理问题,在线等待 连接数据库时出现的问题 报表和表在SQL SERVER 的关系 重复数据如何删除 那位大虾知道网上哪里有sqlserver的函数的参考手册? sql语句的问题!
begin tran
update 座位表 set 占位标志 = 占位标志 - 1,@IsFree = 占位标志
where 座位 = 座位
if @IsFree = 0
begin
rollback
raiserror 50999 '已使用了!'
return -1
end
commit
我的座位状态FLAGS有三个状态:0表示为空座位,7表示为临时选择状态,2表示已经售出。
即选择是由0变为7,而收银后将7变为2,但是就是担心收银时,发生意外,如断电或者执行收银失败时,座位的状态还是7,而不是变回原来的0
要达到我这个目的,应该怎么办?
你可以把从一笔业务开始到一笔业务结束所有修改数据的语句放在一个事务里面。
任何一个环节出错了,便rollback,这样就相当于什么都没修改一样。只有所有
的改动都没问题,才执行commit永久提交
这一句我不明白,你的意思是不是座位状态从2变为1再变为2再变为0
[email protected]