VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 775|回复: 3

关于使用锁的并发控制???????????

[复制链接]

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-1-21 22:40:01 | 显示全部楼层 |阅读模式
我的存储过程pd_Update_NowCom中的Update语句用了排它锁 然后用了waitfor来模拟一个长时间的更新
然后想在这个存储过程执行的过程中执行pd_Select_NewCom这个存储过程 想看看锁的作用,我这样:
exec pd_Update_NewCom '1234'
exec pd_Select_NewCom '0001'
不管什么情况 pd_Select_NewCom都会等待上面的一个存储过程执行完成了之后才执行,这样我就没办法看到底锁起作用了没有。。。。
而这里我又有了一个疑问: sql语句既然都是同步执行的,怎么会有并发的概念啊?(我知道这里不对,但是我现在只能这么想)
怎么才能模拟出多用户并发的情况啊?

还有一个问题就是
create procedure pd_Update_NewCom
@ID varchar(10)
as
begin transaction
        update NewCom(tablockx)
        set CompanyName='西华大学网络学院2班'
        where CompanyID=@ID
        waitfor delay '00:00:10'
commit transaction
这里这个锁是在事务完了之后解除,还是update语句完成后解除??
回复

使用道具 举报

0

主题

114

帖子

69.00

积分

新手上路

Rank: 1

积分
69.00
发表于 2020-1-31 13:27:01 | 显示全部楼层
1.用触发器可以实现并发
2.应该在事务结束后解除..
回复

使用道具 举报

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-1-31 21:18:01 | 显示全部楼层
事务结束后是自动解除吗???
那如果我不写在事务中呢 像这样:
      update NewCom(tablockx)
        set CompanyName='xxxxxx'
        where CompanyID=@ID
        waitfor delay '00:00:10'
这样是在这10秒之前解除锁还是10秒之后啊?
回复

使用道具 举报

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-2-2 11:09:01 | 显示全部楼层
.....各位大哥。。。。帮帮忙啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表