有两个表:
A(图书名称,销售金额,客户编号等)
B(客户编号,累计购书金额)
想用触发器使得每一次 客户买书,都会把本次销售金额累加到累计购书金额里
下面的代码貌似不对,该怎么改
ALTER TRIGGER 累计金额
   ON  销售信息
 for INSERT
AS 
BEGIN
declare @客户编号 varchar(30) ,@图书名称 varchar(30) ,@销售金额 numeric(18, 2)
select @客户编号=@客户编号
update 客户 set 累计购书金额=累计购书金额+@销售金额 where 客户编号=@客户编号 
END

解决方案 »

  1.   

    ALTER TRIGGER 累计金额
      ON 销售信息
     for INSERT
    AS  
    BEGIN
    declare @客户编号 varchar(30) ,@图书名称 varchar(30) ,@销售金额 numeric(18, 2)
    select @客户编号=客户编号,@销售金额 = 销售金额 from inserted
    update 客户 set 累计购书金额=累计购书金额+@销售金额 where 客户编号=@客户编号  
    END
      

  2.   

    TRY
    ALTER TRIGGER 累计金额
      ON 销售信息
     for INSERT
    AS  
    BEGIN
      UPDATE 客户 
      SET 客户.累计购书金额=ISNULL(客户.累计购书金额,0)+I.销售金额 
      FROM (SELECT 客户编号,SUM(销售金额) AS 销售金额 FROM INSERTED GROUP BY 客户编号) I
      WHERE 客户.客户编号=I.客户编号  
    END
    GO
      

  3.   

    create TRIGGER 累计金额 ON 销售信息 for INSERT
    AS  
    BEGIN
      update 客户 set 累计购书金额 = 累计购书金额 + i.销售金额 from 客户 k , inserted i where k.客户编号 = i.客户编号  
    END