sqlserver同步机制——触发器同步

--注册远程服务器
exec   sp_addlinkedserver     '别名','','SQLOLEDB','服务器名或者IP'
exec   sp_addlinkedsrvlogin   '别名','false',null,'sa','sa'

--示例


exec   sp_addlinkedserver     'WWW-07D4401AC5D','','SQLOLEDB','WWW-07D4401AC5D'
exec   sp_addlinkedsrvlogin   'WWW-07D4401AC5D','false',null,'sa','sa'
select * from [WWW-07D4401AC5D].su.dbo.su
alter trigger tr_insert_author on su
for insert
as
set xact_abort on
--启动远程服务器的MSDTC服务
exec master..xp_cmdshell 'isql /S"WWW-07D4401AC5D" /U"sa" /P"sa" /q"exec master..xp_cmdshell ''net start msdtc'',no_output"',no_output
--启动本机的MSDTC服务
exec master..xp_cmdshell 'net start msdtc',no_output
insert [WWW-07D4401AC5D].su.dbo.su(name,age)
values ('tony',20)

 

-------------------触发器------------

use[MKT5]
go
create trigger tr_insert_active_info on active_info
INSTEAD OF insert
as
set xact_abort on
insert wff.MKT5.dbo.active_info
select * from inserted

go

--修改同步
create trigger tr_update_active_info on active_info
INSTEAD OF update
as
set xact_abort on

declare @PK varchar(50),@table_name varchar(50),@sql varchar(5000)
set @table_name = 'active_info'
exec GetPK @table_name,null,null,@PK output


select @sql = (
N'delete b
from active_info b,deleted d
where b.'+@PK +'=d.'+@PK)

exec @sql

insert wff.MKT5.dbo.active_info
select * from inserted
go

--删除同步
create trigger tr_delete_active_info on active_info
INSTEAD OF delete
as
set xact_abort on

declare @PK varchar(50),@table_name varchar(50),@sql varchar(5000)
set @table_name = 'active_info'
exec GetPK @table_name,null,null,@PK output


select @sql = (
N'delete b
from active_info b,deleted d
where b.'+@PK +'=d.'+@PK)

exec @sql
go


 

 

PS:远程数据同步,必须打开MSDTC,必须打开135端口

启用网络 DTC 访问的步骤

启用网络DTC是分布式数据库事物控制的必要条件。设置过程应依下面步骤进行。

1)      单击“开始”,指向“控制面板”,然后单击“添加或删除程序”;

2)      单击“添加/删除 Windows 组件”;

3)      选择“应用程序服务器”,然后单击“详细信息”;

4)      选择“启用网络 DTC 访问”, 网络管理 、网络事务、XA 事务。另外,DTC 登录帐户一定要设置为“NT Authority"NetworkService”,并且事务管理器通讯不要求进行验证。然后单击“确定”;

5)      单击“下一步”;

6)      单击“完成”;

7)      停止分布式事务处理协调器服务,然后重新予以启动;

8)      停止 Microsoft SQL Server 和其他参与分布式事务处理的资源管理器服务(如 Microsoft 消息队列),然后将其重新启动。

 

二、Windows xp配置MSDTC的方法

控制面板-----〉管理工具-----〉组件服务



选择组件服务-----〉计算机--------〉我的电脑,再点击鼠标右键。






 

“点击安全性配置(I)….”按钮,选择项如下:


 

posted on 2009-05-05 14:44  Beast 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/zykitzy/archive/2009/05/05/1449913.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值