问题:如何实时同步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 实现跨服务器 数据定时同步
发布评论