CREATE TRIGGER 触发器名 
ON 操作表. 
AFTER UPDATE 
AS 
UPDATE a SET a.x = b.x 
FROM dbprefix.AAA a INNER JOIN inserted b 
ON a.id = b.id 
通过这个字段能对那些字段较少的字符串进行更新,但是如果数据库字段很多的话,set那里就需要写很多 a.x=b.x ,针对这种情况有什么比较方便的方法么

解决方案 »

  1.   

    沒什麼方便的方法,如果字段名有規律的話,可以考慮用動態SQL來處理
      

  2.   


    --什么意思哦???
    --咋看你trigger那么不自在呢?语法好多都不对哦
    CREATE OR REPLACE TRIGGER 触发器名  
    AFTER UPDATE ON 操作表  
    FOR EACH ROW
    BEGIN 
       UPDATE dbprefix.AAA a SET a.x = (SELECT b.x  FROM  b where a.id = b.id) where exists(select 1 from b where a.id =id) ;
    END; 
      

  3.   


    混了mssql 跟oracle 的触发器 的写法
      

  4.   


    --要么拼接要么,就老实写 
    --修正你的语法规范
    CREATE or replace TRIGGER 触发器名 AFTER UPDATE  ON 操作表 for each row
    begin  
    UPDATE a SET a.x = :new.x  where a.id = :new.id ; 
    end;