Связанный сервер INSERT, UPDATE и DELETE завершается с ошибкой "Неизвестная ошибка поставщика"
Неожиданно происходит сбой INSERT, UPDATE и DELETE для определенного файла (таблица в удаленной системе, которая, как я считаю, представляет собой AS/400).
Связанный сервер, который мы используем, настроен в SQL Server и использует источник данных ODBC (DSN). Источник данных - это "источник данных ODBC для iSeries Access для Windows".
Только одна таблица имеет эту проблему. Мы можем делать вставки и обновления в других таблицах, используя тот же связанный сервер, без каких-либо ошибок, и SELECT все еще работают для проблемной таблицы.
Мы получаем эти сообщения для операторов INSERT и UPDATE (имена серверов и БД заменены в приведенном ниже коде):
Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "MSDASQL" for linked server "MYSERVER" reported an error.
The provider did not give any information about the error.
Msg 7343, Level 16, State 2, Line 1
The OLE DB provider "MSDASQL" for linked server "MYSERVER" could not INSERT INTO
table "[MYSERVER].[MYDB].[DMPCOM].[DMPXIF]". Unknown provider error.
И DELETE дает это сообщение:
The OLE DB provider "MSDASQL" for linked server "MYSERVER" could not delete from
table ""MYDB"."DMPCOM"."DMPXIF"". There was a recoverable, provider-specific
error, such as an RPC failure.
Если у вас есть какие-либо подсказки, пожалуйста, не стесняйтесь ответить на этот вопрос.
Спасибо Андреас
1 ответ
Причиной ошибки было то, что журналирование было отключено для файла AS400, к которому мы подключаемся с SQL Server, используя связанный сервер и источник данных ODBC iSeries. Это также отключило контроль обязательств.
Однако установка фиксации "Коммутировать немедленно (*NONE)" в источнике данных ODBC iSeries не помогла. (Возможно, в этом есть нечто большее, чем изменение этой настройки.)
Администратор базы данных системы AS/400 воссоздает таблицу с ее настройками по умолчанию, включая ведение журнала и управление фиксацией, а затем все вернулось в нормальное состояние и вставило, обновило и удалило работоспособность из соединения со связанным сервером.