事务、锁以及存储过程的并发问题

zl_c zl_c 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
设:表[T]有一字段num,int类型
---- ------
[id] [num]
1 1
存储过程如下:
begin tran
declare @N int
select @N=[num] from [T] where [id]=1
if(@N<2)
update [T] set [num]=[num]+1 where [id]=1
commit tran


要求:执行完存储过程后,表中的num值不能大于2,但如果有两个用户同一时间执行上面存储过程的话,就会出现num的值为3.
请教如果解决?注意:请不要将select和update写成一句
...全文

相关推荐

评论 20
收藏 已收藏
分享
返回顶部
zl_c
MS-SQL Server 34,876 成员 254,635 内容