濮阳杆衣贸易有限公司

主頁 > 知識庫 > SQL Server 跨庫同步數(shù)據(jù)

SQL Server 跨庫同步數(shù)據(jù)

熱門標簽:零成本地圖標注賺錢 電話機器人怎么代理商 400電話辦理泰安 千呼電話機器人可以試用嗎 互聯(lián)網(wǎng)電話外呼系統(tǒng) 家庭農場地圖標注名稱怎樣起名 電銷需要外呼系統(tǒng)嗎 我要地圖標注數(shù)量有限制嗎 安卡拉地圖標注app

最近有個需求是要跨庫進行數(shù)據(jù)同步,兩個數(shù)據(jù)庫分布在兩臺物理計算機上,自動定期同步可以通過SQL Server代理作業(yè)來實現(xiàn),但是前提是需要編寫一個存儲過程來實現(xiàn)同步邏輯處理。這里的存儲過程用的不是opendatasource,而是用的鏈接服務器來實現(xiàn)的。存儲過程創(chuàng)建在IP1:192.168.0.3服務器上,需要將視圖v_custom的客戶信息同步到IP2:192.168.0.10服務器上的t_custom表中。邏輯是如果不存在則插入,存在則更新字段。

create PROCEDURE [dbo].[p_pm_項目平臺客戶批量同步到報銷平臺](
  @destserver nvarchar(50),
  @sourceserver nvarchar(50)
)
AS
BEGIN

  SET NOCOUNT ON;
  --不存在則添加鏈接服務器,外部查詢必須指明IP地址,例如 select * from [IP].[database].[dbo].[table]
  if not exists (select * from sys.servers where server_id!=0 and data_source=@destserver)
  begin
    exec sp_addlinkedserver  @server=@destserver
  end
  if not exists (select * from sys.servers where server_id!=0 and data_source=@sourceserver)
  begin
    exec sp_addlinkedserver  @server=@sourceserver
  end
    begin try 
    set xact_abort on
    begin transaction 
              INSERT INTO [192.168.0.10].[dbCRM].[dbo].[t_custom] (客戶ID,
                
                客戶名稱,
                客戶簡稱,
                輸入碼,
                查詢碼,
                地址,
                錄入登錄名,
                錄入時間,
                修改登錄名,
                修改時間,
                審批狀態(tài)ID,
                審批狀態(tài)名稱,
                是否審批結束,
                審批操作時間,
                項目管理客商編碼,
                序號)
        SELECT A.客戶ID,A.客戶名稱,
                A.客戶簡稱,
                dbo.fn_pm_GetPy(A.客戶名稱),
                A.客戶編號+','+A.客戶名稱+','+dbo.fn_pm_GetPy(A.客戶名稱)+','+A.客戶簡稱+','+dbo.fn_pm_GetPy(A.客戶簡稱),
                A.地址,
                'admin',
                getdate(),
                null,
                null,
                'D65F87A8-79C8-4D1C-812D-AE4591E056A8',
                '已審批',
                1,
                A.審批操作時間,
                A.項目管理客商編碼,
                0
        FROM  [dbPM].[dbo].[v_custom] A
        WHERE A.客戶ID NOT IN ( SELECT 客戶ID FROM  [192.168.0.10].[dbCRM].[dbo].[t_custom]);
      
                          
                                          
        ----------------------------------存在更新-----------------------------------                                
        update  A set 
              A.客戶名稱=B.客戶名稱,
              A.客戶簡稱=B.客戶簡稱,
              A.輸入碼=dbo.fn_pm_GetPy(B.客戶名稱),
              A.查詢碼=B.客戶編號+','+B.客戶名稱+','+dbo.fn_pm_GetPy(B.客戶名稱)+','+B.客戶簡稱+','+dbo.fn_pm_GetPy(B.客戶簡稱),
              A.地址=B.地址,
              A.修改登錄名='admin',
              A.修改時間=getdate(),
              A.項目管理客商編碼 =B.項目管理客商編碼
          from [192.168.0.10].[dbCRM].[dbo].[t_custom] A,[dbPM].[dbo].[v_custom] B 
          where A.客戶ID=B.客戶ID;
      
      
      
      commit transaction 
    end try 
    begin catch 
      select ERROR_NUMBER() as errornumber,ERROR_MESSAGE() as errormsg,ERROR_LINE() as errorline
      rollback transaction 
    end catch
END

  如果沒有正確配置,經(jīng)常會出現(xiàn) 消息 7391,級別 16,狀態(tài) 2,過程 xxxxx,第 XX 行 。無法執(zhí)行該操作,因為鏈接服務器 "xxxxx" 的 OLE DB 訪問接口 "SQLNCLI" 無法啟動分布式事務。

  可以參照如下的配置:

以上就是SQL Server 跨庫同步數(shù)據(jù)的實現(xiàn)方法,希望對大家的學習有所幫助。

您可能感興趣的文章:
  • SQLServer 跨庫查詢實現(xiàn)方法
  • MSSQLSERVER跨服務器連接(遠程登錄)的示例代碼
  • SQL Server實現(xiàn)跨庫跨服務器訪問的方法

標簽:黃山 大同 文山 來賓 東營 濱州 池州 新鄉(xiāng)

巨人網(wǎng)絡通訊聲明:本文標題《SQL Server 跨庫同步數(shù)據(jù)》,本文關鍵詞  SQL,Server,跨庫,同步,數(shù)據(jù),;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQL Server 跨庫同步數(shù)據(jù)》相關的同類信息!
  • 本頁收集關于SQL Server 跨庫同步數(shù)據(jù)的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    五家渠市| 平南县| 紫金县| 年辖:市辖区| 临江市| 永泰县| 鄯善县| 宕昌县| 尉犁县| 浠水县| 闵行区| 搜索| 嘉善县| 德惠市| 韶关市| 方城县| 海安县| 平塘县| 泽普县| 芦溪县| 万山特区| 塔河县| 宁武县| 岑溪市| 绥芬河市| 奉贤区| 前郭尔| 尖扎县| 岳池县| 昭通市| 石狮市| 岢岚县| 肇东市| 沁水县| 南宫市| 临夏县| 东莞市| 内乡县| 梅州市| 泸水县| 邯郸县|