CREATE TRIGGER 名1 ON dbo.tabMain
FOR INSERT
AS
insert db2..tabSlave select * from insertedCREATE TRIGGER 名2 ON dbo.tabMain
FOR update
AS
update db2..tabSlave set 列=aa.列 from inserted aa where aa.编号=db2..tabSlave.编号
CREATE TRIGGER 名3 ON dbo.tabMain
FOR delete
AS
delete db2..tabSlave where 编号 in (select 编号 from deleted)

解决方案 »

  1.   

    如果约束能满足你的功能要求的话就用约束好了
    你可以用企业管理器打开你的数据库-->数据库关系图-->右击新建关系图-->添加你的表-->在表与表之间建立外部关键字-->右击关联(那条线),选择属性-->设置级联更新或级联删除.也可以用查询分析器来设置外键,同时指定cascade选项就可以了.
      

  2.   

    z5wjz:您的方法在SQL Server 2000中没问题,但SQL Server7中没有该功能
      

  3.   

    小黑兄:我试了您的update方法,没有成功
      

  4.   

    应该可以的啊
    create table tabmain
    ( 列 varchar(10),
     编号 int)create table tabSlave
    ( 列 varchar(10),
     编号 int)goinsert into tabmain select 'aaa',1
    insert into tabmain select 'cc',2insert into tabSlave select 'aaa',1
    CREATE TRIGGER 名2 ON dbo.tabMain
    FOR update
    AS
    update tabSlave set 列=aa.列 from inserted aa where aa.编号=tabSlave.编号goupdate tabmain
    set 列='bbb'
    where 编号=1
    select * from tabslave你的表结构是怎样的?
      

  5.   


    CREATE TRIGGER 名21 ON dbo.tabMain
    FOR update
    ASinsert into tabSlave
    select * from tabmain where 编号 in (select 编号 from inserted)delete  tabSlave
    where  编号 not in (select 编号 from inserted)
      

  6.   


    CREATE TRIGGER 名2 ON dbo.tabMain
    FOR update
    ASif not exists( select * from tabslave where 编号 in (select 编号 from inserted))insert into tabSlave
    select * from tabmain where 编号 in (select 编号 from inserted)delete  tabSlave
    where  编号 not in (select 编号 from inserted)
    update tabSlave set  列=aa.列 from inserted aa where aa.编号=tabSlave.编号
      

  7.   


    insert into tabSlave
    select * from tabmain where 编号 in (select 编号 from inserted)
    就是保存原来的数据啊