1
If exists
(select @item from Table_RestaurantsTransaction
where Mobile=@mobile and OrderPlaced=0 and Restaurant=@restaurantName ) 

begin

update Table_RestaurantsTransaction
set Quantity+=@quantity
where Item=@item and Mobile=@mobile and OrderPlaced=0 and Restaurant=@restaurantName

end

else

begin

insert into Table_RestaurantsTransaction(Mobile,TransactionID,Item,Price,DecisionStatus,OrderPlaced,TransactionDate,Restaurant,Quantity)
values(@mobile,@transactionID,@item,@price,1,0,GETDATE(),@restaurantName,@quantity)


end
end

在上面的查询中,插入查询仅在我添加项目时第一次执行。如果我添加相同的项目,则更新查询将被执行。但是,如果我尝试添加新项目,则不会执行 else 子句中的插入查询。

请告诉我的错误。

4

1 回答 1

7

我认为您想测试if子句中是否存在该项目:

If exists (select 1
           from Table_RestaurantsTransaction
           where item = @item and Mobile=@mobile and OrderPlaced=0 and Restaurant=@restaurantName
          ) 
. . .

但是,您应该了解merge在一个语句中完成所有这些的语句。

于 2013-08-28T15:05:20.550 回答