加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 14:00:38 所属栏目:MsSql教程 来源:网络整理
导读:--注册远程服务器 exec sp_addlinkedserver '别名','','SQLOLEDB','服务器名或者IP' exec sp_addlinkedsrvlogin '别名','false',null,'sa','sa' --示例 exec sp_addlinkedserver 'WWW-07D4401AC5D','WWW-07D4401AC5D' exec sp_addlinkedsrvlogin 'WWW-07D440

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

--示例


exec sp_addlinkedserver 'WWW-07D4401AC5D','WWW-07D4401AC5D'
exec sp_addlinkedsrvlogin 'WWW-07D4401AC5D','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,@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),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)….”按钮,选择项如下:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读