问题:如何实时同步A服务器的A1数据库中的T1表数据同步到B服务器B1数据库的TB1表中?

思路:

1、首先实现不同服务器的数据库通信;

2、构建存储过程,实现T1表数据更新到BT1表中;

3、使用SQLserver代理作业,实现定时数据同步。

步骤:

1、创建链接服务器 
语法: exec sp_addlinkedserver   'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' 
exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 ' 

示例:exec sp_addlinkedserver 'JL', ' ', 'SQLOLEDB', '192.168.0.21' 
exec sp_addlinkedsrvlogin 'JL', 'false ',null, 'sa', '123456'

2、创建存储过程

语法:

CREATE PROCEDURE <Procedure_Name, sysname, ProcedureName> 
    -- Add the parameters for the stored procedure here
    <@Param1, sysname, @p1> <Datatype_For_Param1, , int> = <Default_Value_For_Param1, , 0>, 
    <@Param2, sysname, @p2> <Datatype_For_Param2, , int> = <Default_Value_For_Param2, , 0>
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Insert statements for procedure here
    SELECT <@Param1, sysname, @p1>, <@Param2, sysname, @p2>
END
GO

示例:

CREATE PROCEDURE PRO_updateTT
  AS
BEGIN
    SET NOCOUNT ON;
    insert into JL.[YFERP_HJ].dbo.铸件类别  select * from  铸件类别 B WHERE NOT EXISTS(SELECT 类别 FROM  JL.[YFERP_HJ].dbo.铸件类别 A where A.类别=B.类别 )
  END
GO

3、新建SQL SERVER 代理

3.1 SQL SERVER 代理---作业---右键作业,新建作业

3.2 右键刚才新建的作业,属性,修改属性

3.3  步骤,这里选择执行上面的存储过程

    EXEC 存储过程名称

 3.4 计划,这里设置每分钟同步更新一次,做测试。

 4、检验是否成功

 点击作业下面的查看代理活动。每分钟同步执行一次,成功。

 

 

 

更多推荐

sqlserver 实现跨服务器 数据定时同步