本帖最后由 cqstc2011 于 2011-10-26 17:24:38 编辑

解决方案 »

  1.   

    这个可以不用触发器update 
      b
    set
      hdb002=a.DEA055,HDB003=a.DEA066
    from
      a,b
    where
      a.DEA001=b.HDB003
    and
      a.DEA002 is null
      

  2.   

    由于种种原因,需要用触发器来写,我写了 如下
    CREATE TRIGGER [TR_UPDATEHDB01] ON[dbo].[DCSHDB]
    FOR UPDATE
    AS DECLARE @DEA960 VARCHAR(60),
               @DEA961 VARCHAR(60),
               @DEA001 VARCHAR(20),
               @DEA002 VARCHAR(30)
    BEGIN TRANSACTION 
      SET NOCOUNT ON
      SELECT @DEA960=DEA960,@DEA961=DEA961,@DEA002=DEA002,@DEA001=DEA001 FROM INSERTED
      IF @DEA002=''
        BEGIN
        UPDATE DCSHDB SET HDB004=DEA960,HDB040=DEA961 WHERE HDB003=@DEA001 
        END
      SET NOCOUNT OFF
    COMMIT TRANSACTION字段名称有变化,但是执行不起,不知道哪里错了
      

  3.   

    CREATE TRIGGER tr_TPADEA ON TPADEA
    FOR UPDATE 
    AS
    begin
    UPDATE d
    SET HDB002=i.DEA055,HDB003=i.DEA055
    FROM INSERTED i,DCSHDB AS d
    WHERE i.DEA001=d.HDB003 AND isnull(i.DEA002,'')=''
    END
      

  4.   

    我是想在DCSHDB这张表中创建触发器,这样在修改DCSHDB这张表时就能触发出来。
      

  5.   

    CREATE TRIGGER tr_DCSHDB ON DCSHDB
    FOR UPDATE 
    AS
    begin
        UPDATE d
        SET DEA055=i.HDB002,DEA055=i.HDB003
        FROM INSERTED i,TPADEA AS d
        WHERE d.DEA001=i.HDB003 AND isnull(i.DEA002,'')=''
    END