关于使用锁的并发控制???????????
我的存储过程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语句完成后解除??
------解决方案--------------------1.用触发器可以实现并发
2.应该在事务结束后解除..