SQL Server 2000 — связанный сервер

#sql-server #linked-server

#sql-сервер #связанный сервер

Вопрос:

Для нашего приложения мы используем SQL Server 2000 и MySQL. Я хочу обновить базу данных MySQL, если какие-либо изменения в SQL Server 2000. Для этого я создал связанный сервер для MySQL. Он работает нормально, но внутри триггера отображается сообщение об ошибке, подобное

[Поставщик OLE / DB вернул сообщение: [MySQL] [Драйвер ODBC 3.51] Дополнительная функция не поддерживается]
Сообщение 7391, уровень 16, состояние 1, Процедура, строка 6
Операцию выполнить не удалось, поскольку поставщик OLE DB ‘MSDASQL’ не смог начать распределенную транзакцию «.

И это мой триггер,

 alter trigger upd_test_enum
on mtest
for insert
as
begin
   insert into emsdev...test_enum (id, name, is_active) values (4, 'Test4', 0)
end
  

Пожалуйста, помогите мне.

С уважением, Мубарак

Комментарии:

1. Если вы публикуете код, XML или образцы данных, пожалуйста , выделите эти строки в текстовом редакторе и нажмите на кнопку «образцы кода» ( { } ) на панели инструментов редактора, чтобы красиво оформить и выделить синтаксис! При публикации сообщений об ошибках, пожалуйста , используйте кавычки ( ` » ` ) для правильного форматирования сообщения об ошибке. Благодаря этому вам больше ничего не понадобится <br/> в вашем post!

Ответ №1:

Мне пришлось сделать несколько вещей, чтобы заставить его работать. Также используется сервер Win2K SQL и импортируются данные из MySQL.

Одна вещь, которую мы сделали, это установили версию 3.51.22 драйвера MySQL ODBC (mysql-connector-odbc-3.51.22-win32.msi).

Тогда следующая статья была очень полезной:http://www.sqlservercentral.com/Forums/Topic340912-146-1.aspx

Главное было отключить транзакции, а также ссылаться на DSN при создании связанного сервера. Для удобства использования я скопирую и вставлю инструкции из статьи SQLServerCentral в этом посте ниже:

Создание связанного сервера в SSMS для базы данных MySQL

  1. Загрузите драйвер MySQL ODBC с mysql.com
  2. Установите драйвер MySQL ODBC на сервер, на котором находится SQL Server — Дважды щелкните файл установщика Windows и следуйте инструкциям.

  3. Создайте DSN с помощью драйвера MySQL ODBC Пуск -> Настройки -> Панель управления -> Административные инструменты -> Источники данных (ODBC) -Перейдите на вкладку Системный DSN -Нажмите Добавить -Выберите драйвер MySQL ODBC -Нажмите Готово на вкладке Вход: -Введите описательное имя для вашего DSN. -Введите имя сервера или IP-адрес в текстовое поле Сервер. -Введите имя пользователя, необходимое для подключения к базе данных MySQL, в текстовое поле пользователя. -Введите пароль, необходимый для подключения к базе данных MySQL, в текстовое поле пароль. -Выберите базу данных, с которой вы хотели бы начать. На вкладке Advance: Под флагами 1: -Установите флажок Не оптимизировать ширину столбца. -Проверьте, возвращают ли совпадающие строки -Проверьте, Разрешают ли большие результаты -Проверьте использование сжатого протокола -Проверьте столбцы BIGINT на INT -Проверьте безопасность под флагами 2: -Проверьте Не запрашивать при подключении -Проверьте Игнорировать # в имени таблицы Под флагами 3: -Проверьте имена возвращаемых таблиц для SQLDescribeCol -Проверьте Отключить транзакции Теперь протестируйте свой DSN, нажав кнопку Test

  4. Создайте связанный сервер в SSMS для SSMS базы данных MySQL (SQL Server Management Studio -> Развернуть Объекты сервера -Щелкните Связанные серверы правой кнопкой мыши -> Выберите Новый связанный сервер на странице Общие: -Связанный сервер: введите имя для вашего связанного сервера -Тип сервера: выберите другой источник данных -Поставщик: выберите поставщика Microsoft OLE DB для драйверов ODBC -Название продукта: Введите MySQLDatabase -Источник данных: Введите имя DSN, которое вы создали на странице Безопасность -Сопоставьте логин с удаленным пользователем и предоставьте пароль удаленных пользователей -Нажмите Добавить в разделе Локальный сопоставления входа с сервера на удаленный сервер: -Выберите локальный логин из выпадающего списка -Введите имя удаленного пользователя -Введите пароль для удаленного пользователя

  5. Измените свойства поставщика MSDASQL Разверните «Поставщики» -> Щелкните правой кнопкой мыши MSDASQL -> Выберите «Свойства» -Включить вложенные запросы -Включить только нулевой уровень (это главное) -Включить Разрешить inprocess -Включить поддержку оператора ‘Like’

  6. Измените настройки в конфигурации области SQL Server Surface Area для функций — Включите поддержку OPENROWSET и OPENDATASOURCE.

  7. Измените настройки в конфигурации поверхностной области SQL Server для служб и подключений — Включите локальные и удаленные подключения через TCP / IP и именованные каналы

  8. Остановите SQL Server и агент SQL Server

  9. Запустите SQL Server и агент SQL Server

Я не обнаружил, что мне нужно перезапускать SQL server.