关于两个server相互传数据的问题,具体情况帖子里介绍。 散分阿!!!!!!!!!!!!!!!!!!!!

楼主powerpanda(超级熊猫)2005-12-22 17:49:10 在 MS-SQL Server / 基础类 提问

情况是这样的,有两个已经链接好的server     A和B,当A中的一个指定表被插入新的数据的时候,便将此数据插入到server   B中的库中的指定的表,并且A中的表要删除其中的数据。当然这些都必须是自动的哈。请问如何实现。我们本来打算用触发器的,但是无法实现将一个server中的表的内容插入到另外server的表中。同一个server中用触发器就可以实现上述要求,但是两个server之间就不行了。请赐教,谢谢。 问题点数:100、回复次数:7Top

1 楼wangtiecheng(不知不为过,不学就是错!)回复于 2005-12-22 20:44:21 得分 10

用链接服务器试试Top

2 楼powerpanda(超级熊猫)回复于 2005-12-23 11:34:54 得分 0

我就是链接的,有其他方法吗?Top

3 楼happyflystone(无枪的狙击手)回复于 2005-12-23 11:40:01 得分 10

快照复制  
   
  链接服务器也是可以的啊Top

4 楼zjcxc(邹建)回复于 2005-12-23 12:26:11 得分 30

--用触发器即时同步两个表的实例(同服务器):  
   
  --测试环境:SQL2000,数据库名:test1,test2,表名:test  
   
  --实现test1上的修改,同步数据库test2  
   
  --创建测试表,不能用标识列做主键,因为不能进行正常更新  
  use   test2  
  go  
   
  if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N'[test]')   and   OBJECTPROPERTY(id,   N'IsUserTable')   =   1)  
  drop   table   [test]  
  go  
   
  create   table   test(id   int   not   null   constraint   PK_test   primary   key  
  ,name   varchar(10))  
  go  
   
  use   test1  
  go  
   
  if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N'[test]')   and   OBJECTPROPERTY(id,   N'IsUserTable')   =   1)  
  drop   table   [test]  
  go  
   
  create   table   test(id   int   identity(1,1)   primary   key  
  ,name   varchar(10))  
  go  
   
  --创建同步的触发器(仅test1上需要)  
  create   trigger   t_test   on   test  
  for   insert,update,delete  
  as  
  set   XACT_ABORT   on  
  begin   tran  
  delete   from   test2..test  
  where   id   in(select   id   from   deleted)  
  insert   into   test2..test  
  select   *   from   inserted  
  commit   tran  
  go  
   
  --插入数据测试  
  insert   into   test  
  select   1,'aa'  
  union   all   select   2,'bb'  
  union   all   select   3,'c'  
  union   all   select   4,'dd'  
  union   all   select   5,'ab'  
  union   all   select   6,'bc'  
  union   all   select   7,'ddd'  
   
  --删除数据测试  
  delete   from   test   where   id   in(1,4,6)  
   
  --更新数据测试  
  update   test   set   name=name+'_123'   where   id   in(3,5)  
   
  --显示测试的结果  
  select   *   from   test   a    
  full   join   test2..test   b   on   a.id=b.id  
  Top

5 楼lgywood(木头凌云)回复于 2005-12-23 13:08:44 得分 20

 
  能否新建   从SERVER   A->SERVER   B的数据转换服务  
  再在SERVER   A中表被更改时用触发器触发此数据转换包?Top

6 楼bugchen888(臭虫)回复于 2005-12-23 13:32:29 得分 20

老大就是老大啊Top

7 楼jyj910(追寻生活)回复于 2005-12-23 16:28:02 得分 10

大哥,我的数据库在还原时出现下面的错误,帮忙看看啊,  
   
  The   file   on   device   'D:\sql-bk\company_jxc_12_15'   is   not   a   valid   Microsoft   Tape   Format   backup   set,Restore   database   is   terminating   abnormally.Top

你可能对以下的问题也比较感兴趣....