共享锁与排它锁
我这里有一个存储过程,请高手指点:我该如何写语句,加行级锁,主要是排他锁,使得sql语句能够避免并发操作. 
 CREATE   PROCEDURE   a_ADD   
 @prescriptionid   varchar(12)   ,   
 @medicineid   varchar(8)   , 
 @amount   numeric(9,2) 
 as    
          Begin   Transaction 
                insert   into   a(prescriptionid,medicineid   ,amount)   values(@prescriptionid,@medicineid,@amount) 
                   If   @@Error    <>    0   RollBack   Transaction       
                   update   medicineinfo   set   amountofusing=amountofusing-@amount   where   medicineid=@medicineid 
                   If   @@Error    <>    0      RollBack   Transaction          
                   Commit   Transaction 
 各位高手多多帮忙.谢谢了 
------解决方案--------------------with(rowlock)
------解决方案--------------------with(nolock) 
------解决方案--------------------
如果每次修改一条或者少量的行,根本没有必要指定锁,因为SQL SERVER能够很好的控制该用什么锁,这样可以达到性能和并发的最佳平衡。 
 如果修改的数据量较大,可以使用下边的办法来防止SQL SERVER锁升级(行锁升级为页锁或表索)而影响并发: 
 set rowcount 50 
 update more: 
        update 语句…… 
 if @@rowcount >  0 
        goto update more 
 set rowcount 0   
 每次修改数据时,要让事务执行的时间尽可能的短一些,事务就不会长时间的占用排他锁而影响并发。