ITPub博客

首页 > 数据库 > SQL Server > 通过链接服务器把一台服务器的数据insert到另一台服务器上

通过链接服务器把一台服务器的数据insert到另一台服务器上

原创 SQL Server 作者:ywxj_001 时间:2017-12-30 11:18:37 0 删除 编辑
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博客 ” ,链接:https://blog.itpub.net/22996654/viewspace-2149513/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
在零售、金融、互联网行业从事数据库相关工作10余年,有丰富的数据库管理和架构的相关经验。 涉及SQLServer、Oracle、MySQL、PostgreSQL等多种数据库。 目前在一家互联网公司担任DBA经理。 负责整个集团数据库的架构设计和管理工作。

注册时间:2010-01-19

  • 博文量
    247
  • 访问量
    436206