Назад | Перейти на главную страницу

Как я могу выполнить инструкцию «вставить» из MS SQL -> MYSQL, используя связанные серверы

Можно ли сделать "вставку" через связанные серверы. Я знаю, что это возможно с помощью MSDTC ... но работает ли это между MS SQL и MYSQL? Любая помощь будет принята с благодарностью. На данный момент ... я могу обновлять и выбирать между двумя базами данных, но при попытке запустить оператор вставки возникает ошибка.

OLE DB provider "MSDASQL" for linked server "**************" returned message "Query-based insertion or updating of BLOB values is not supported.". Msg 7343, Level 16, State 2, Line 1 The OLE DB provider "MSDASQL" for linked server "**************" could not INSERT INTO table "[*******************]...[**************_options]". Location: memilb.cpp:1493 Expression: (*ppilb)->m_cRef == 0 SPID: 76 Process ID: 1644

На случай, если кто-то еще захочет узнать ответ: проблема была с переменной - я пытался вставить ее в «длинный текст», и через связанный сервер MS SQL не позволил мне обновить что-либо большее, чем «varchar». Поэтому исправление заключается в:

1) Обновите и измените столбец с longtext -> varchar

2) Вставьте новые данные

3) Обновите и измените столбец обратно с varchar → longtext

Я понимаю, что это ужасный хакер и не сработает для многих, но в моей ситуации это сработало. Спасибо Squillman за общение

Пока разрешения настроены правильно, вы можете просто вставить INSERT. Убедитесь, что пользовательский контекст, который подключается через связанный сервер к MySQL, имеет соответствующие разрешения для таблицы на вашем сервере MySQL.

Чтобы просмотреть настройки безопасности для связанного сервера

  • Разверните объекты сервера в обозревателе объектов SQL Server Management Studio
  • Разверните «Связанные серверы», щелкните правой кнопкой мыши соответствующий связанный сервер и получите свойства.
  • Щелкните Безопасность на странице свойств связанного сервера и проверьте сопоставления безопасности.