是否可以从 MySQL 和 MSSQL 同步两个链接服务器中的两个表?

Posted

技术标签:

【中文标题】是否可以从 MySQL 和 MSSQL 同步两个链接服务器中的两个表?【英文标题】:is it possible to sync two tables in two linked server one from MySQL and MSSQL? 【发布时间】:2016-08-15 13:46:56 【问题描述】:

我已经创建了两个链接服务器,一个来自 mysql,另一个来自远程 MSSQL。是否可以从不同的数据库同步这两个链接服务器中的表?

【问题讨论】:

您应该能够使用计划的 SQL 作业使用一些关键列手动比较和同步这些链接的服务器表。没有确切的表结构,很难将其表述为实际答案 谢谢@ughai 你能给我看一下插入语句示例 - 语法吗? 做一个普通的Insert into MySQLLnkedServer...TableName(Col1,Col2) SELECT Col1,Col2 FROM SQLServerLinkedServer.database.schema.TableName 谢谢,如果我想反面Insert into XX-SERVER.database.schema.TableName SELECT Col1,Col2 FROM MySQLLnkedServer...TableName(Col1,Col2) 或者如果我想从 Mysql 将数据插入 MSSQL? @Kin 我建议你使用 Navicat Premium(版本 10.0.10)第三方工具进行数据库同步。对数据同步和结构同步很有帮助。我也遇到过这样的问题,但我用这个工具解决了。 【参考方案1】:

要将数据从 MySQL 插入 SQL Server,请执行以下操作

INSERT INTO SQLServerLinkedServer.database.schema.TableName(Col1,Col2)
SELECT Col1,Col2 FROM MySQLinkedServer...TableName

要将数据从 SQL Server 插入 MySQL,请执行以下操作

INSERT INTO MySQLinkedServer...TableName(Col1,Col2)
SELECT Col1,Col2 FROM SQLServerLinkedServer.database.schema.TableName

您可以使用键列比较这些表。例如,使用类似这样的方法在 MySQLinkedServer 中插入缺失的记录

INSERT INTO MySQLinkedServer...TableName(Col1,Col2)
SELECT T1.Col1,T2.Col2 
FROM SQLServerLinkedServer.database.schema.TableName T1
    LEFT JOIN MySQLinkedServer...TableName T2
    ON T1.col1 = T2.col1
WHERE T2.col1 IS NULL

【讨论】:

我的链接服务器到 MSSQL 名称类似于 XXX-SERVER。单词SERVER 自动以蓝色突出显示,因为SERVER 是关键字。我可以改用`INSERT INTO 'XXX-SERVER'.database.schema.TableName(Col1,Col2) 吗?单引号? 只需用 [] 引用服务器名称,例如 this[XXX-Server]。请检查以下identifier rules 非常感谢,但我收到此错误Msg 7399, Level 16, State 1, Line 1 The OLE DB provider MSDASQL for linked server MYODBC reported an error. The provider reported an unexpected catastrophic failure. Msg 7372, Level 16, State 2, Line 1 Cannot get properties from OLE DB provider MSDASQL for linked server MYODBC. MYODBC is is MYSQL Data source name 您的链接服务器配置似乎有问题。通过this检查您的步骤

以上是关于是否可以从 MySQL 和 MSSQL 同步两个链接服务器中的两个表?的主要内容,如果未能解决你的问题,请参考以下文章

mysql实时同步到mssql的解决方案

MSSQL 到 MYSQL - 从 MSSQL 中选择,插入 MySQL

如何实现mysql和mssql的数据同步

是否可以将数据从本地存储保存到数据库 mssql

在 Entity Framework 6 中使用 MySQL 和 MSSQL

将大表从 MySql 迁移到 MsSql