CREATE PROCEDURE myPro @vol int,@num int ,@code varchar(20) ASdeclare @status int
set @status = convert (int,rand()*10000)update cost_stock
set cs_end =@vol ,cs_status = @status
where cs_end <> 0 and cs_type = 'A' and cs_sku = @codeinsert into cost_stock (cs_sku,cs_type)
select cs_sku,'B' from cost_stock
where cs_status = @status and cs_sku = @code
update cost_stock
set cs_status = 0
where cs_type = 'A' and cs_sku = @codeGO谢谢~~~~
set @status = convert (int,rand()*10000)update cost_stock
set cs_end =@vol ,cs_status = @status
where cs_end <> 0 and cs_type = 'A' and cs_sku = @codeinsert into cost_stock (cs_sku,cs_type)
select cs_sku,'B' from cost_stock
where cs_status = @status and cs_sku = @code
update cost_stock
set cs_status = 0
where cs_type = 'A' and cs_sku = @codeGO谢谢~~~~
set cs_end =@vol ,cs_status = @status
where cs_end <> 0 and cs_type = 'A' and cs_sku = @codeinsert into cost_stock (cs_sku,cs_type)
select cs_sku,'B' from cost_stock
where cs_status = @status and cs_sku = @codeupdate cost_stock
set cs_status = 0
where cs_type = 'A' and cs_sku = @code
--------------------------------------------insert into cost_stock (cs_sku,cs_type)
select cs_sku,'B' from cost_stock
where cs_status = @status and cs_sku = @code
update cost_stock
set cs_end = (case when cs_end <> 0 then @vol else cs_end end) ,cs_status = 0
where cs_end <> 0 and cs_type = 'A' and cs_sku = @code
-------------------------------------------
你第一句UPDATE里的cs_status = @status 不是白写吗?因为在第三句 做了不管cs_end 是不是等于0 都会让cs_status=0