求助多个用户同时调用同一个存储过程
假设有下面的存储过程
ALTER PROCEDURE [dbo].[p_DelteSales]
@Office_Code nvarchar(20),
@Invoice_No nvarchar(20),
@InvoiceLine_No nvarchar(80) ,
@finalAccept_No nvarchar(20) output
AS
BEGIN
declare @procductCD nvarchar(20)
declare @saleQTY nvarchar(20)
--获取产品cd,数量
select @procductCD=procductcode,@saleQTY=saleQTY
from dbo.T_Sales
where SaleCode=@Invoice_No
and SaleBrCode =@InvoiceLine_No
---库存更新
update dbo.T_INV
set 数量 = isnull(数量,0)+@saleQTY,
where 仓库CD=@Office_Code
and procductcode=@procductCD
--dbo.T_Sales数据删除
delete dbo.T_Sales
where SaleCode=@Invoice_No
and SaleBrCode =@InvoiceLine_No
set @finalAccept_No='1'
END
这时候 同时有用户A和B 对这个存储过程进行调用,会出现这种情况吗?
A先执行之后得到了一个procductCD和@saleQTY 然后后面的库存更新还没执行的时候
B开始调用存储过程,得到了另一个procductCD和@saleQTY 然后A在执行库存更新的时候使用了B得到的那个数据呢?
或者A先执行之后得到了一个procductCD和@saleQTY 然后后面的库存更新还没执行的时候
B开始调用存储过程,导致A后面的存储过程不执行呢?
如果有这些问题的话,这个存储过程要如何修改呢。