MSSQL跨服務器觸發器報錯的問題解決

来源:互联网 发布:淘宝店铺发布宝贝属性 编辑:程序博客网 时间:2024/06/15 13:52

在做多數據庫服務器數據同步的時候,有想到兩種方案,一種是設置Job定時一次性同步,另一種就是直接寫觸發器。一般前者適合數據更新頻繁且數據量大的情況,後者適合數據量小而且更新不頻繁的情況。


根據實際情況選擇了後者,那麼要在觸發器中使用鏈接服務器(DBLink),在觸發器中訪問遠程服務器,當時就直接寫了,後來測試的時候出現了各種報錯,網上查閱相關資料後終於解決,特總結之。


報錯信息 1服務器×××上的MSDTC不可用

解決思路開啟MSDTC

解決方法:  運行(WIN + R) : services.msc ,在服務列表中找到 Distributed Transaction Coordinator,啟動此服務並設為自動

注:

  a)若不想設為自動,直接在cmd下輸入命令: “net start msdtc” 即可;

  b)若Distributed Transaction Coordinator 无法启動,可能是因為丟失了日誌文件,可以在cmd下先後運行“msdtc -resetlog” 和 “net start msdtc”解決


報錯信息 2無法執行該操作,因爲鏈接服務器 xxx 的 OLE DB 訪問接口 "SQLNCLI" 無法啓動分佈式事務

解決思路設置MSDTC的屬性

解決方法若是WIN7(XP沒試過),控制面板--小圖標--管理工具--組件服務(或直接運行:comexp.msc 或 dcomcnfg 進入 ),依次展開計算機--我的電腦--Distributed Transaction Coordinator--本地DTC,右鍵屬性,進入安全選項卡,如下設置:


需要特別說是的是:觸發器涉及到的雙方服務器/客戶端都要進行以上兩項設置!

 

以上兩項設置好後,就可以在觸發器中訪問遠程服務器啦~


0 0
原创粉丝点击