• SQLSEVER 不同服务器下两个结构相似的表实现数据同步(触发器)


    1、建立链接服务器

      在ServerA 中创建指向ServerB的链接服务器,并做好账号映射。addlinkedserver存储过程创建一个链接服务器,参数详情参见官方文档

      第1个参数LNK_ServerA是自定义的名称;第2参数产品名称,如果是SQL Server不用提供;第3个参数是驱动类型;第4个参数是数据源,这里写SQL Server服务器地址

    exec sp_addlinkedserver 'LNK_ServerB_DatabaseB','','SQLNCLI','192.168.1.101'

      配置链接服务器后,默认使用同一本地账号登陆远程数据库,如果账号有不同,还需要进行账号映射。sp_addlinkedsrvlogin参数详情参见官方文档

      第1个参数同上;第2个参数false即使用后面参数提供的用户密码登陆;第3个参数null使所有本地账号都可以使用后面的用   户密码来登陆链接服务器,如果第3个参数设置为一个本地SQL Server登陆用户名,那么只有这个用户才可以使用远程账号登陆链接服务器;最后两个是登录远程服务器的用户和密码。

    exec sp_addlinkedsrvlogin 'LNK_ServerB_DatabaseB','false',null,'user','password'

    如果要删除以上配置可以如下
    exec sp_droplinkedsrvlogin 'LNK_ServerB_DatabaseB',null
    exec sp_dropserver 'LNK_ServerB_DatabaseB','droplogins'
    也可以取SQLSEVER Stduio 里面手动删除,在服务器对象下链接服务器中可以找到配置好的链接服务器

    2、建立好了再用触发器来实现连个不同表结构的数据同步。
    示例:在服务器A建立一个student_01表,有name,age,class列,同样在服务器B上建立一个student表,表结构一样。
    通过新增或修改服务器A的数据,同时新增或修改服务器B的数据
    定义的链接服务器名为[LINK_DB]


    CREATE trigger [dbo].[trig_to_DB]
    on [dbo].[student_01]
    after insert ,update
    as
    begin

    declare @name varchar(50);
    declare @age int;
    declare @class varchar(50);
    declare @tname varchar(50);

    select @name = name , @age =age , @class = class
    from inserted

    if(len(@name)!= 0)
    select @tname =name from [LINK_DB].[数据库名].[dbo].[student] where name = @name
    if(LEN(@tname)!= 0)
    begin
    update [LINK_DB].[数据库名].[dbo].[student] set age = @age,class = @class where name = @tname
    end
    else
    begin
    insert into [LINK_DB].[数据库名].[dbo].[student](name,age,class) values(@name,@age,@class)
    end
    end

    保存成功过后,新增或修改服务器A的student_01表的数据,服务器B中表student 的数据也会新增或修改


















  • 相关阅读:
    Python List comprehension列表推导式
    Git
    Python 默认参数 关键词参数 位置参数
    Blog List
    【论文笔记】DeepOrigin: End-to-End Deep Learning for Detection of New Malware Families
    【论文笔记】Malware Detection with Deep Neural Network Using Process Behavior
    Scala入门 【1】
    RocketMQ与Kafka对比(18项差异)
    Kafka简介
    Spark存储管理(读书笔记)
  • 原文地址:https://www.cnblogs.com/dosoftwarey/p/11703733.html
Copyright © 2020-2023  润新知