T-SQL TRIGGER问题 [英] T-SQL TRIGGER QUESTION

查看:101
本文介绍了T-SQL TRIGGER问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何加入INVENTORY表以从INSERTED表中获取stockqty?目前,它给我一个错误?:关键字附近的语法不正确

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

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

推荐答案





试试这个....

Hi,

Try this....
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  



问候,

GVPrabu


Regards,
GVPrabu


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


这篇关于T-SQL TRIGGER问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆