--这种类型触发器,或者外键约束,并且发生在不同的库的表中,我没有试过,我感觉这样的设计不是很好维护!1.如果是同一个datbase server,那么引用表就是直接.
a.dbo.表名 ,b.dbo.表名
你就写个触发器即可达到功能
2.如果是在不同的database server,那么就有点麻烦,可用openrowset,
我一般只是查询到远程服务器的一个表资料,然后插入或者更新到我目前连接的表,
你说的那样,我没有试过,就不敢妄下定论。
--openrowset的使用:
USE mabel --当地的一个资料库
GO
insert into b --当地的一个表
SELECT a.*
FROM OPENROWSET('MSDASQL',
   'DRIVER={SQL Server};SERVER=seattle1;UID=sa;PWD=MyPass',
   pubs.dbo.authors) AS a

解决方案 »

  1.   

    谢谢 MorningTea(一勺抹茶) 大侠,我先学习一下,试一下,看搞得来不!!
      

  2.   

    (1)
    insert B..B中表 select * from A..A中表(2)
    insert B..B中表 
    select * from openrowset('sqloledb','服務器實例名';'sa','你的密碼',A.dbo.A中表)
      

  3.   

    Sorry,(2)
    insert B..B中表 
    select * from openrowset('sqloledb','服務器實例名';'sa';'你的密碼',A.dbo.A中表)
      

  4.   

    --远程存取
    1、 开启远程数据库
    基本语法
    select * from OPENROWSET('SQLOLEDB', 'server=servername;uid=sa;pwd=apachy_123', 'select * from table1' ) 
    参数: (1) OLEDB Provider name
    2、 其中连接字符串参数可以是任何和端口用来连接,比如
    select * from OPENROWSET('SQLOLEDB', 'uid=sa;pwd=apachy_123;Network=DBMSSOCN;Address=202.100.100.1,1433;', 'select * from table'要复制目标主机的整个数据库,首先要在目标主机上和自己机器上的数据库建立连接(如何在目标主机上建立远程连接,刚才已经讲了),之后insert所有远程表到本地表。基本语法:
    insert into OPENROWSET('SQLOLEDB', 'server=servername;uid=sa;pwd=apachy_123', 'select * from table1') select * from table2 
    这行语句将目标主机上table2表中的所有数据复制到远程数据库中的table1表中。实际运用中适当修改连接字符串的IP地址和端口,指向需要的地方,比如:
    insert into OPENROWSET('SQLOLEDB', 'uid=sa;pwd=apachy_123;Network=DBMSSOCN;Address=202.100.100.1,1433;', 'select * from table1') select * from table2insert into OPENROWSET('SQLOLEDB', 'uid=sa;pwd=hack3r;Network=DBMSSOCN;Address=202.100.100.1,1433;', 'select * from _sysdatabases') 
    select * from master.dbo.sysdatabases insert into OPENROWSET('SQLOLEDB', 'uid=sa;pwd=hack3r;Network=DBMSSOCN;Address=202.100.100.1,1433;', 'select * from _sysobjects') 
    select * from user_database.dbo.sysobjects insert into OPENROWSET('SQLOLEDB', 'uid=sa;pwd=apachy_123;Network=DBMSSOCN;Address=202.100.100.1,1433;', 'select * from _syscolumns') 
    select * from user_database.dbo.syscolumns之后,便可以从本地数据库中看到目标主机的库结构,这已经易如反掌,不多讲,复制数据库:
    insert into OPENROWSET('SQLOLEDB', 'uid=sa;pwd=apachy_123;Network=DBMSSOCN;Address=202.100.100.1,1433;', 'select * from table1') select * from database..table1 insert into OPENROWSET('SQLOLEDB', 'uid=sa;pwd=apachy_123;Network=DBMSSOCN;Address=202.100.100.1,1433;', 'select * from table2') select * from database..table2...... 
    FYI~
      

  5.   

    触发器实现比较简单.
    例如在A库A表插入一条数据,相应就在B库A表中插入一条相同数据
    CREATE TRIGGER [Insert_A] ON [dbo].[tbA] 
    FOR INSERT
    AS
    insert into dbB.dbo.tbA select * from inserted其他的以次类推