|
|
|||||||||
|
|||||||||
|
|||||||||
| |
||
| |||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
I have a SP that inserts a record:
Code:
IF @action = 'add' BEGIN INSERT INTO OrderDetail (orderid, itemid, iquantity) VALUES (@orderid, @itemid, @itemQ) END I want to add a nested IF statement to check to see if a record exist WHERE orderid AND itemid = @orderid AND @itemid. I am thinking I should use something like: Code:
SET @orderlineid int = SELECT orderlineid FROM OrderDetail WHERE orderid = @orderid AND itemid = @itemid IF (@orderlineid NOT NULL) BEGIN UPDATE OrderDetail SET iquantity = @itemQ WHERE orderlineid = @orderlineid ELSE INSERT INTO OrderDetail (orderid, itemid, iquantity) VALUES (@orderid, @itemid, @itemQ) END Is there a better way? thanks |
|
#2
|
|||
|
|||
|
This is what I came up with in case anyone is interested:
Code:
IF @action = 'add' BEGIN /* Check for existing item in order */ IF EXISTS (SELECT orderlineid FROM OrderDetail WHERE orderid = @orderid AND itemid = @itemid) BEGIN DECLARE @orderlineid int DECLARE @orderQ int SET @orderlineid = (SELECT orderlineid FROM OrderDetail WHERE orderid = @orderid AND itemid = @itemid) SET @orderQ = (SELECT iquantity FROM OrderDetail WHERE orderid = @orderid AND itemid = @itemid) SET @orderQ = @orderQ + @itemQ UPDATE OrderDetail SET iquantity = @orderQ WHERE orderlineid = @orderlineid END ELSE BEGIN INSERT INTO OrderDetail (orderid, itemid, iquantity) VALUES (@orderid, @itemid, @itemQ) END END |
![]() |
| Viewing: ASP Free Forums > Database > Microsoft SQL Server > SP to insert IF new UPDATE IF existing |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|