SQL Server 2000 - связанный сервер - PullRequest
2 голосов
/ 10 мая 2011

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

[Возвращено сообщение поставщика OLE / DB: [MySQL] [Драйвер ODBC 3.51] Необязательная функция не поддерживается]
Msg 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 Ответ

3 голосов
/ 11 июля 2011

Мне пришлось сделать несколько вещей, чтобы это заработало.Также используя SQL-сервер Win2K и импортируя данные из 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, в текстовое поле пароля.-Выберите базу данных, с которой вы хотите начать. На вкладке «Дополнительно»: под флагами 1: -Проверьте не оптимизировать ширину столбца.-Check Return Соответствующие строки -Check Разрешить большие результаты -Check Использовать сжатый протокол -Check BIGINT столбцы в INT -Check Safe под флагами 2: -Check Не запрашивать при подключении -Check Игнорировать # в имени таблицы под флагами 3: -Check ReturnИмена таблиц для SQLDescribeCol -Check Disable Transactions Now Протестируйте свой DSN, нажав кнопку «Тест»

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

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

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

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

  8. Stop SQLАгент сервера и SQL Server

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

Я не нашел необходимости перезапускать сервер SQL.

...