SQLServer 저장 프로세스 중 트랜잭션 사용 방법

1735 단어
본 논문은 SQLServer 저장 과정 중의 사무 사용 방법을 공유하였으며, 구체적인 코드는 다음과 같다.

create proc usp_Stock
@GoodsId int, 
@Number int, 
@StockPrice money, 
@SupplierId int, 
@EmpId int, 
@StockUnit varchar(50), 
@StockDate datetime, 
@TotalMoney money , 
@ActMoney money , 
@baseId int,
@Description nvarchar(255)
as
  declare @error int =0 --          
  --    
  begin transaction
    --         
    insert into StockInfo values(@GoodsId, @Number, @StockPrice, @SupplierId, @EmpId, @StockUnit, @StockDate, @TotalMoney, @ActMoney,DEFAULT,@Description, @baseId)
    set @error+=@@ERROR --             
    --            
    --             
    if exists (select * from dbo.InventoryInfo where goodid=@GoodsId) --      ,        
      begin
        update dbo.InventoryInfo set GNumber=GNumber+@Number,TotalMoney+=@TotalMoney where goodid=@GoodsId
        set @error+=@@ERROR --                 
    end  
    else --             ,             
      begin
        declare @GWarningNum int --        
        --      
        set @GWarningNum=(select WaringNum from dbo.GoodsInfo where GId=@GoodsId)
        insert into   dbo.InventoryInfo values(@GoodsId,@Number,@baseId,@GWarningNum,@TotalMoney,'     ',default)
        set @error+=@@ERROR --                 
      end
--           
if(@error<>0)
  begin
    rollback transaction
    return -1 --          
  end
else
  begin
    commit transaction
    return 1 --       
  end
go

본고에서 서술한 것이 모두가 데이터베이스 조작을 배우는 데 도움이 되기를 바란다.

좋은 웹페이지 즐겨찾기