存储过程

时间:2017-10-17 05:46:00

标签: sql sql-server stored-procedures sql-server-2012

我正在使用SQl-server 2012,此代码位于存储过程中。

这些是我的SQL查询。我想执行" Insert"查询"更新"查询未执行。 如果执行了更新查询,则不应执行插入查询。

Update tblStock Set Balance= Balance +  @ReduceRawQty 
    Where LocCode=@LocCode 
    AND ItemCode=@rawitemcode 
    and CostPrice=@rawcostprice

Insert Into tblStock(LocCode, ItemCode, CostPrice, Balance,Transfer,PCode)
    Values(@LocCode,@rawitemcode,@RawCostPrice,@RawQty,0,@PCode)    

有没有办法做到这一点,请帮帮我

1 个答案:

答案 0 :(得分:0)

您可以检查@@ROWCOUNT以查看UPDATE语句影响了多少行:

UPDATE ...

IF @@ROWCOUNT = 0
    INSERT ...

或者,您可以使用EXISTS首先检查行并确定要执行的操作:

IF EXISTS (SELECT 1 FROM tblStock WHERE LocCode=@LocCode AND ItemCode=@rawitemcode and CostPrice=@rawcostprice)
    UPDATE ...
ELSE
    INSERT ...