不同服务器数据库之间的数据定时同步到sql server (支持mysql,oracle数据库同步到sql server)
1,在目标数据库新增服务器对象->连接到服务器->新建服务器连接
2,编写数据同步业务PROC
ALTER PROC TestProc AS BEGIN --打开完全事物回滚 SET XACT_ABORT ON; SET NOCOUNT ON; --开始异常拦截 BEGIN TRY --开始事物 BEGIN TRANSACTION; PRINT '开始同步数据'; MERGE INTO dbo.TestTable AS T USING ( SELECT ROW_NUMBER() OVER (ORDER BY CREATE_DATE DESC) AS Id, NAME, PHONE FROM [TEST_OGU].[Hyx_Finance_DB].[dbo].[TBL_CUSTOMER_RELATIONSHIP] ) AS d ON T.Name = d.NAME AND T.Phone = d.PHONE --是否存在(存在更新) WHEN MATCHED THEN UPDATE SET Name = d.NAME, Phone = d.PHONE --不存在数据(新增数据) WHEN NOT MATCHED THEN INSERT ( Name, Phone ) VALUES (d.NAME, d.PHONE); PRINT '同步数据结束'; --提交事物 COMMIT TRANSACTION; --结束异常拦截 END TRY BEGIN CATCH --回滚事物 IF XACT_STATE() <> 0 BEGIN ROLLBACK TRANSACTION; END; END CATCH; --还原事物设置 SET XACT_ABORT OFF; END;
3,设置定时作业
1、打开本地数据连接,在左边资源管理器中找到Sql Server代理(在最下面)
2、【新建】一个作业
3、在【常规】中填写名称即可,说明看个人习惯
4、打开【步骤】,点击【新建】,填写【名称】,选择【数据库】,在命令空白处填写T-sql语句,然后点分析。
5、打开【计划】,点击【新建】,设置你想要的定时计划,然后保存。
6、点击【Sql Server代理】,右键启动,即定时作业启动。
7、如果想让定时作业开机自动启动,则在 服务中找到SQL Server 代理 (MSSQLSERVER),设置成【自动】模式
第三步:把定时作业生成脚本
方法1、点击【SQL Server 代理】下的作业,选中你创建的作业——右键编写作业脚本——create到,然后复制脚本语言即可
方法2、发现有博主这样写的(管理-SQL Server代理-作业(鼠标右键)-所有任务-生成SQL脚本-保存到下的某个sql文件 [Page])
本文来自博客园,作者:方金,转载请注明原文链接:https://www.cnblogs.com/Gold-fangjin/p/9723586.html