[2台服务器如何同步数据库]触发器 实现两台服务器的数据同步

  第一,先配置两台电脑,具体的步骤请参见http://support.microsoft.com/kb/839279/en-us

  第二,创建连接服务器,代码如下:

  exec sp_addlinkedserver 'srv2','','SQLOLEDB','192.168.0.14'

  exec sp_addlinkedsrvlogin 'srv2','false',null,'sa','sa123456'

  说明:这两个存储过程是系统定义的,直接用就行。参数解释,'srv2':链接服务器的别名,通过这个别名你就可以在后面引用到链接服务器。中间有一个空字符串,不知道是啥意思,不用管它。'SQLOLEDB':数据提供方式,微软的一种机制,没必要管它,直接下上去就行了。'192.168.0.14' :连接服务器的IP地址。'sa':登录链接服务器的用户名。'sa123456'

  , 登录连接服务器的密码。

  第三,创建触发器:

  create trigger t_test on orderText

  for delete

  as

  set xact_abort on

扫描二维码关注公众号,回复: 10945938 查看本文章

  begin distributed tran

  delete from srv2.CsFoods.dbo.FoodType1

  where TypeId in(select id from deleted)

  commit tran

  第四,测试。

  这里,我们删除一条数据

  delete from orderText where id=1

  这条数据一被删除,马上会触发srv2服务器上的CsFoods数据库中的FoodType1数据表中的TypeId为1的数据被删除。

  备注:昨天我们经理让我做一个触发器,能使两台服务器上的的数据实现同步删除。当时我就在网上疯狂地Baidu和Google,但是发现,很多文章都差不多,我照着他们说的做了,但还是不行,一直抱错。我仔细看了看,代码应该没有问题,问题肯定在配置上,也就是我这边的两台电脑的配置不正确。仔细想想,这些配置都是我根据网上那些所谓高手的文章,一点一点配的呀。后来,我发现了一片英文的文章,我照着它上面说的配置方法,直接就搞定了。后来想了想,网上很多配置的方法不科学,配置的项太多了。至于具体的配置,开篇我已给出了一个链接。

  如果想在同一台服务器上访问另一个数据库,这个更简单,方法一:按照上面的SQL代码添加链接服务器,但不用配置那些东西了,直接可以访问到。

  方法二:很简单很简单,直接用数据库名就能访问到。比如 select * from Northwind.dbo.orders。推荐第二种方法。

  发表于

  2012-07-17 15:46

  凯11

  阅读(...)

  评论(...)

  编辑

  收藏

  刷新评论刷新页面返回顶部

猜你喜欢

转载自www.cnblogs.com/sqlserver-mysql/p/12730952.html