2016-04-22 4 views
1

Я создал два связанных сервера один из Mysql, а другой из удаленного MSSQL. возможно ли синхронизировать таблицы на этих двух связанных серверах из разных баз данных?Можно ли синхронизировать две таблицы на двух связанных серверах с MySQL и MSSQL?

+1

вы должны быть в состоянии вручную сравнивать и синхронизировать эти связанные таблицы сервера с помощью какого-то ключевого столбца (ы) с помощью запланированного SQL задания. без точной структуры таблицы, трудно сформулировать это в фактическом ответе – ughai

+0

Thank @ughai Можете ли вы показать мне пример инструкции Insert - синтаксис? – Kin

+0

просто выполните обычную 'Вставить в MySQLLnkedServer ... TableName (Col1, Col2) SELECT Col1, Col2 FROM SQLServerLinkedServer.database.schema.TableName' – ughai

ответ

2

Вставка данных из 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 
+0

Мой связанный сервер с именем MSSQL похож на XXX-SERVER. слово «SERVER» автоматически выделяется синим цветом, потому что «SERVER» является ключевым словом. Могу ли я использовать 'INSERT INTO 'XXX-SERVER'.database.schema.TableName (Col1, Col2) вместо этого? Единая котировка? – Kin

+1

просто укажите имя сервера с помощью [], как это [XXX-Server] '. пожалуйста, проверьте следующие [правила идентификатора] (https://msdn.microsoft.com/en-us/library/ms175874.aspx) – ughai

+0

Большое спасибо, но я получаю эту ошибку 'Msg 7399, Level 16, State 1, Line 1 Поставщик OLE DB MSDASQL для связанного сервера MYODBC сообщил об ошибке. Поставщик сообщил о неожиданном катастрофическом сбое. Msg 7372, уровень 16, состояние 2, строка 1 Невозможно получить свойства от поставщика OLE DB MSDASQL для связанного сервера MYODBC. «MYODBC - это имя источника данных MYSQL – Kin