Update table using Openquery linked server

user1088172 picture user1088172 · Feb 8, 2013 · Viewed 30.4k times · Source

I've tried this code and still got the following error, perhaps anyone could help?

UPDATE a 
SET    a.MMDWNO = '21'
FROM   OPENQUERY(NMIIFLIB,
       'select * from MVXCDTANSN.MITMAS WHERE MMITTY = ''25''') a 

Error :

OLE DB provider "MSDASQL" for linked server "NMIIFLIB" returned message "[IBM][iSeries Access ODBC Driver][DB2 UDB]SQL7008 - MITMAS in MVXCDTANSN not valid for operation.".
Msg 7343, Level 16, State 4, Line 1
The OLE DB provider "MSDASQL" for linked server "NMIIFLIB" could not UPDATE table "[MSDASQL]".

The select statement works fine but when I try to update I always stuck with this.

Answer

Ivan G picture Ivan G · Feb 8, 2013

If you're trying to update a table on linked server, try this syntax:

UPDATE OPENQUERY(NMIIFLIB, 'select * from MVXCDTANSN.MITMAS where MMITTY = ''25''')
SET MMDWNO = 21