可否实现这样的功能:有两个表,字段完全一样,该便一个表的字段信息或添加字段另一个表的字段还要保持与此表的字段一样。

解决方案 »

  1.   


    Create trigger up_tba on A for insert
    as
    begin
     insert into  B Select * from  inserted
    end;
      

  2.   


    CREATE TRIGGER [TRIGGER NAME] ON [dbo].[表1] 
    FOR INSERT, UPDATE, DELETE 
    AS
    if not exists(select 1 from deleted )--新增操作
    insert 表2
    select 
        *
    from 
        inserted ielse 
    if exists(select 1 from inserted) and exists(select 1 from deleted )------修改
            
    update 表2
    set 字段1=i.字段1,
        字段2=I.字段2,
        字段N=I.字段N
    from 
        inserted i,deleted d
    WHERE 
          表2.字段1=d.字段1,
          表2.字段2=d.字段2,
          表2.字段N=d.字段N
    else--------------------------------------------删除
     delete 表2 where 表2.主字段=deleted.主字段
    go
      

  3.   

    小常识:{
    触发器语句中使用了两种特殊的表:deleted 表和 inserted 表Deleted 表用于存储 DELETE 和 UPDATE 语句所影响的行的复本。在执行 DELETE 或 UPDATE 语句时,行从触发器表中删除,并传输到 deleted 表中。Deleted 表和触发器表通常没有相同的行。Inserted 表用于存储 INSERT 和 UPDATE 语句所影响的行的副本。在一个插入或更新事务处理中,新建行被同时添加到 inserted 表和触发器表中。Inserted 表中的行是触发器表中新行的副本。
    }
      

  4.   

    那你有什么好的办法,我的意思是表a由于需要,要添加一字段,把表a刚修改过的数据追加到表b中,如果表b不加,就会出错,表b需要同步加,而不是发现程序错误后,再手工添加。