CREATE TRIGGER [trig_omsYunDanJian_Insert]
   ON  [dbo].[omsYunDanJian]
   AFTER INSERT
AS --声明变量
Declare @m_zhongliang decimal(7,2)
declare @m_tiji decimal(15,6)BEGIN
SET NOCOUNT ON;
        @m_zhongliang = select 'ZL'=SUM(ZhongLiang)
                from omsYunDanJian
                where omsYunDanJian.YunDanID=inserted.YunDanID
        @m_tiji= select 'TJ'=SUM(TiJi)
         from omsYunDanJian
         where omsYunDanJian.YunDanID=inserted.YunDanID

        if(@m_zhongliang >0 || @m_tiji >0)

UPDATE omsYunDan
        SET         ZhongLiang = @m_zhongliang ,        TiJi=@m_tiji= 

    from inserted
    WHERE omsYunDan.YunDanID = inserted.YunDanID
    SET NOCOUNT OFF
END请大家帮我修改一下这个触发器!

解决方案 »

  1.   

    差不多这样吧CREATE TRIGGER [trig_omsYunDanJian_Insert]
       ON  [dbo].[omsYunDanJian]
       AFTER INSERT
    AS --声明变量
    Declare @m_zhongliang decimal(7,2)
    declare @m_tiji decimal(15,6)BEGIN
    SET NOCOUNT ON select @m_zhongliang = SUM(ZhongLiang) as 'ZL', @m_tiji = SUM(TiJi) as 'TJ'
    from omsYunDanJian
    where omsYunDanJian.YunDanID=inserted.YunDanID

    if(@m_zhongliang >0 || @m_tiji >0)
    UPDATE omsYunDan
             SET  ZhongLiang = @m_zhongliang , TiJi = @m_tiji 
    from omsYunDan inner join inserted
         on omsYunDan.YunDanID = inserted.YunDanID SET NOCOUNT OFF
    END
      

  2.   

    @m_zhongliang = SUM(ZhongLiang) as 'ZL'--这个变量是要从另一个表里面查询出来的
    @m_zhongliang = select 'ZL'=SUM(ZhongLiang)
                    from omsYunDanJian
                    where omsYunDanJian.YunDanID=inserted.YunDanID
      

  3.   

    ALTER TRIGGER [trig_omsYunDanJian_Insert]
       ON  [dbo].[omsYunDanJian]
       AFTER INSERT
    AS Declare @m_zhongliang decimal(7,2)
    declare @m_tiji decimal(15,6)BEGIN

    SET NOCOUNT ON;

    select @m_zhongliang = SUM(ZhongLiang) as 'ZL', @m_tiji = SUM(TiJi) as 'TJ'
    from omsYunDanJian
    where omsYunDanJian.YunDanID=inserted.YunDanID    if(@m_zhongliang >0 or @m_tiji >0)
    UPDATE omsYunDan
        SET  ZhongLiang = @m_zhongliang , TiJi = @m_tiji 
    from omsYunDan inner join inserted
        on omsYunDan.YunDanID = inserted.YunDanID    SET NOCOUNT OFF    -- Insert statements for trigger hereEND
    --消息 156,级别 15,状态 1,过程 trig_omsYunDanJian_Insert,第 23 行
    关键字 'as' 附近有语法错误。select @m_zhongliang = SUM(ZhongLiang) as 'ZL', @m_tiji = SUM(TiJi) as 'TJ'
    这里有什么错误吗? 帮我看看吧!
      

  4.   

    为什么把AS 去掉会 出现下面的错误呢
    select @m_zhongliang = SUM(ZhongLiang), @m_tiji = SUM(TiJi)
    消息 4104,级别 16,状态 1,过程 trig_omsYunDanJian_Insert,第 25 行
    无法绑定由多个部分组成的标识符 "inserted.YunDanID"。
      

  5.   

    select @m_zhongliang = SUM(ZhongLiang) as 'ZL', @m_tiji = SUM(TiJi) as 'TJ'
    from omsYunDanJian
    where omsYunDanJian.YunDanID=inserted.YunDanID
    ====================================================
    select @m_zhongliang = SUM(ZhongLiang), @m_tiji = SUM(TiJi) 
    from omsYunDanJian inner join inserted
    on omsYunDanJian.YunDanID=inserted.YunDanID
      

  6.   

    select @m_zhongliang = SUM(ZhongLiang) as 'ZL', @m_tiji = SUM(TiJi) as 'TJ'
    =============================================================================
    select 用法有错;
    SELECT @var1 = 'Generic Name'
    SELECT @var1 AS 'Company Name'
     
    不能 SELECT @m_zhongliang = SUM(ZhongLiang) AS  'ZL'
      

  7.   

    select @m_zhongliang = SUM(ZhongLiang), @m_tiji = SUM(TiJi) 
    from omsYunDanJian inner join inserted
    on omsYunDanJian.YunDanID=inserted.YunDanID