以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]数据库事务问题请教  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=111195)

--  作者:zhangqinyun
--  发布时间:2017/12/17 11:33:00
--  [求助]数据库事务问题请教
代码1(SQL查询)      读取数据A(数据A为逻辑)
                               如果A=1,则终止
                               如果A=0,则执行代码2
代码2(数据库事务)    A+1
                               更新数据B
                               更新数据C

以上代码1和2是不是应该放到同一个数据库事务里
还是可以像上面一样分开执行SQL查询和数据库事务

如果分开,会不会导致员工一和员工二同时读取到A=0,而重复执行代码2
如果放在一个事务里要怎么写?



[此贴子已经被作者于2017/12/17 11:35:23编辑过]

--  作者:有点甜
--  发布时间:2017/12/17 19:42:00
--  

事务无法防止读取到重复的值。因为两个客户端同时操作的时候,是同时执行代码的。

 

如果要禁止重复,可以编写sqlserver的存储过程,锁定表,这样才行。百度一下具体锁定表的方法。