日期:2014-05-19  浏览次数:20659 次

关于使用锁的并发控制???????????
我的存储过程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.应该在事务结束后解除..