不同服務器數據庫之間的數據定時同步到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])


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM