Я пытаюсь обновить данные в брандмауэре PervasiveSQL (Sage ERP system) из SQL Server 2008 R2 с помощью установки Linked Server. Ниже приведены подробности и сообщение об ошибке msg ... Кикер заключается в том, что оператор обновления работает в окне разработки просто отлично, очень похожая настройка. Любая помощь будет оценена!Ошибка SQL Linked Server Ошибка синтаксиса Openquery
Окружающая среда:
- Windows Server 2008 Enterprise (Cloud сервер, Rackspace)
- Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (Intel X86) Express Edition с дополнительными службами на операционных системах Windows NT 6.1 (Build 7601: Service Pack 1) (WOW64) (гипервизор)
- Sage Timberline ERP работает с Pervasive SQL V.10 бэкэндом
Установка:
У нас есть установка LINKED SERVER в SQL Server 2008 с использованием 32-разрядного драйвера Timberline (OBDC) Связанный сервер использует поставщик MSDASQL со следующими двумя свойствами, установленными в TRUE: «Разрешить inprocess» и «Non Transacted Updates»
Ошибка:
Мы можем успешно извлечь данные, см. Запрос ниже, со связанного сервера. Мы можем успешно просматривать объекты через связанный сервер в SSMS.
SELECT *
FROM OPENQUERY (TLLINKSERVER, 'SELECT * FROM TABLE1 where JOBID = ''00-00-111111''')
Однако приведенный ниже оператор UPDATE
возвращает следующую ошибку.
UPDATE OPENQUERY(TLLINKSERVER, 'SELECT * FROM TABLE1 WHERE JOBID = ''00-00-111111''')
SET DATEFIELD = '2013-07-15'
Ошибка:
OLE DB provider "MSDASQL" for linked server "TLLINKSERVER" returned message "[Sage Timberline Office][Sage Timberline Office ODBC Driver]Syntax Error.". OLE DB provider "MSDASQL" for linked server "TLLINKSERVER" returned message "[Sage Timberline Office][Sage Timberline Office ODBC Driver]UPDATE "\SERVER1\Company Data\DATA\COMPANY1\"<< ??? >>."TABLE1" SET "DATEFIELD1"=? WHERE "JOBID"=? AND "DATEFIELD1"=?".
Msg 7343, Level 16, State 4, Line 1
The OLE DB provider "MSDASQL" for linked server "TLLINKSERVER" could not UPDATE table "[MSDASQL]".
«Очень похожая» настройка - можете ли вы рассчитать, как они не идентичны? –