2013-08-28 9 views
1
If exists 
(select @item from Table_RestaurantsTransaction 
where [email protected] and OrderPlaced=0 and [email protected]) 

begin 

update Table_RestaurantsTransaction 
set [email protected] 
where [email protected] and [email protected] and OrderPlaced=0 and [email protected] 

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.если существует еще запрос не работает sql

Прошу сообщить об ошибке.

+1

В соответствии с вашим тестом на существование вы не разрешаете использовать несколько элементов для каждой комбинации Mobile/OrderPlaced/Restaurant. –

ответ

7

Я думаю, что вы хотите, чтобы проверить наличие элемента в пункте if:

If exists (select 1 
      from Table_RestaurantsTransaction 
      where item = @item and [email protected] and OrderPlaced=0 and [email protected]antName 
     ) 
. . . 

Однако, вы должны узнать о merge заявлении, которое делает это все в одном заявлении.

+0

отличный человек..Он работал ... Большое спасибо ... – codewarrior