透過連結伺服器把一臺伺服器的資料insert到另一臺伺服器上

ywxj_001發表於2017-12-30
Server A[10.0.0.1]
建立到Server B的連結伺服器

Server B[10.0.0.2]
建立使用者連結伺服器的資料庫賬號

Server A:
執行指令碼:
set XACT_ABORT ON
Begin Try
Begin distributed Tran
Insert Into [10.0.0.2].[B].[dbo].[tableB]
(bid,
company,
tel
)

SELECT  [bid]
      ,[company]
      ,[tel]
  FROM [A].[dbo].[tableA] t
  where t.code='11' and  t.type='ERROR'

Commit Tran
End Try

Begin Catch
Rollback Tran
End Catch

由於目標表的id為自增列,可以不insert目標表的id自增列,也可以設定目標表的id自增列可以insert。

SET IDENTITY_INSERT tableB ON

讓目標表的自增列可以insert記錄。

insert完畢關閉目標表的IDENTITY_INSERT

SET IDENTITY_INSERT tableB OFF


這裡選擇不insert目標表的id自增列,讓id自增列自己增加。

報錯:
該夥伴事務管理器已經禁止了它對遠端/網路事務的支援

在遠端主機沒有開啟網路DTC訪問。
http://blog.csdn.net/apollokk/article/details/51543349

雙方啟動MSDTC服務
(1)在windows控制面版-->管理工具-->服務-->Distributed Transaction Coordinator-->屬性-->啟動
(2)在CMD下執行"net start msdtc"開啟服務後正常

管理工具-元件服務,全部勾選。

執行成功。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22996654/viewspace-2149513/,如需轉載,請註明出處,否則將追究法律責任。

相關文章