2015-06-10 2 views
1

Мы установили новый связанный сервер, используя драйвер ODBC Amazon Redshift (x64) в SQL Server 2014 Express. ЗЕЬЕСТ работать, как и ожидалось, используя OPENQUERY, например:Невозможно вставить данные по Linked Server в Redshift

SELECT * FROM OPENQUERY(Redshift_Linked_Server, 'SELECT * FROM tableA') 

Однако мы не можем использовать функциональные возможности ВСТАВИТЬ из OPENQUERY, например:

INSERT OPENQUERY(
    Redshift_Linked_Server, 
    'SELECT SingleValue from tableA') 
VALUES ('2') 

При запуске мы получаем следующее сообщение об ошибке назад:

Поставщик OLE DB «MSDASQL» для связанного сервера «Redshift_Linked_Server» возвратил сообщение «Unspecified error».

Поставщик OLE DB «MSDASQL» для связанного сервера «Redshift_Linked_Server» возвращенное сообщение «Транзакция не может иметь несколько наборов записей с этим типом курсора. Измените тип курсора, зафиксируйте транзакцию или закройте один из наборов записей».

Msg 7343, Level 16, State 2, Line 9 Поставщик OLE DB «MSDASQL» для связанного сервера «Redshift_Linked_Server» не смог занести в таблицу «[MSDASQL]».

Это происходит при вставке из одной строки с использованием VALUES или при вставке из набора данных с помощью SELECT.

Это проблема с драйвером или может быть настроен связанный сервер, чтобы предотвратить это?

ответ

0

Я решил эту проблему с помощью EXECUTE ('INSERT INTO TABLENAME1 (COL1, COL2) ВЫБРАТЬ COL1, Col2 ОТ TABBLENAME2') AT

Надеется, что это полезно для кого-то там.

Смежные вопросы