Click here to Skip to main content
15,893,722 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
How can I join the INVENTORY table to get stockqty from INSERTED table as well? Currently, it gives me an error?: Incorrect syntax near the keyword
SQL
IF EXISTS (SELECT name FROM SYSOBJECTS WHERE name = 'OrderitemsInsertTRG')
    BEGIN DROP TRIGGER OrderitemsInsertTRG; END;
GO

CREATE TRIGGER OrderitemsInsertTRG
ON ORDERITEMS
FOR INSERT
AS

DECLARE  
@qty INT,  --In the ORDERITEMS table
@Partid INT,
@Stockqty INT
BEGIN 
    -- get new values for qty and partid from the INSERTED table
    -- get current (changed) StockQty for this PartID
    -- UPDATE with current (changed) StockQty 
    
     SELECT @Partid =(SELECT partid FROM INSERTED)
     SELECT @qty = (SELECT qty FROM INSERTED)
   
    INNER JOIN  INVENTORY I   -----stockQty is in the INVENTORY table
    ON I.partid = @Partid
              
              UPDATE INVENTORY
    SET stockqty = stockqty - qty
    WHERE partid = @Partid; 
   
END;   
GO

-- testing blocks for OrderItemsInsertTrg  
BEGIN
END;
GO
Posted
Updated 12-Mar-13 17:15pm
v5

Hi,

Try this....
SQL
IF OBJECT_ID('OrderitemsInsertTRG') IS NOT NULL DROP TRIGGER OrderitemsInsertTRG
GO
 CREATE TRIGGER OrderitemsInsertTRG
ON ORDERITEMS
FOR INSERT
AS
    DECLARE  @qty INT,  --In the ORDERITEMS table
		   @Partid INT,
		   @Stockqty INT
BEGIN 
    -- get new values for qty and partid from the INSERTED table
    -- get current (changed) StockQty for this PartID
    -- UPDATE with current (changed) StockQty 
    
     SELECT @Partid = partid, @qty = qty
     FROM INSERTED

     UPDATE INVENTORY SET stockqty = stockqty - qty 
     WHERE partid = @Partid
END  

Regards,
GVPrabu
 
Share this answer
 
v2
SQL
IF EXISTS (SELECT name FROM SYSOBJECTS WHERE name = 'OrderitemsInsertTRG')
    BEGIN DROP TRIGGER OrderitemsInsertTRG; END;
GO
 
CREATE TRIGGER OrderitemsInsertTRG
ON ORDERITEMS
FOR INSERT
AS
 
DECLARE  
@qty INT,  --In the ORDERITEMS table
@Partid INT,
@Stockqty INT
BEGIN 
    -- get new values for qty and partid from the INSERTED table
    -- get current (changed) StockQty for this PartID
    -- UPDATE with current (changed) StockQty 
    
     SELECT @Partid =i.partid FROM INSERTED i)
     SELECT @qty =i.qty FROM INSERTED i)
 
    UPDATE INVENTORY
    SET stockqty = stockqty - qty
    WHERE partid = @Partid; 
   
END;   
GO
 
-- testing blocks for OrderItemsInsertTrg  
BEGIN
END;
GO
 
Share this answer
 
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900