0

尝试通过链接服务器进行更新时遇到问题。错误如下:

OLE DB provider "MSDASQL" for linked server "**LINKED_SERVER_NAME" returned message "Data provider or other service returned an E_FAIL status.".
Msg 7330, Level 16, State 2, Line 1
Cannot fetch a row from OLE DB provider "MSDASQL" for linked server "LINKED_SERVER_NAME".

我选择数据没有问题,但任何时候我尝试进行更新都会失败。我的更新代码:

Update [LINKED_SERVER_NAME]...[Table_Name]
SET post_content = 'alert'
where ID = 5061

这是我的选择语句,它确实有效:

select top 100 * from [LINKED_SERVER_NAME]...[Table_Name] where ID = 5061

我在用:

  • 微软 SQL Server 管理工作室 2008
  • 尝试通过 ODBC 连接器 5.2 从 MS SQL -> MySQL 连接(5.1 有同样的问题)

更新我尝试使用“OPENQUERY”->这也不起作用

4

1 回答 1

1

OPENQUERY并不新鲜,但在处理非 Microsoft 链接服务器时它更加可靠。

UPDATE OPENQUERY (LINKED_SERVER_NAME, 'SELECT post_content FROM Table_Name WHERE ID = 5061') 
SET post_content = 'alert'; 
  • 不要在 mysql 查询中使用 [ ] 方括号;您可以改用撇号。
  • 检查您是否具有表的更新权限。
  • 尝试直接在 mysql 连接上运行更新。这可能是与链接服务器无关的错误。
  • mysql表是视图吗?它可能未正确配置为可更新视图。 MySQL 创建视图语法

如果这仍然不能解决问题,请将您的实际 openquery 代码粘贴到问题中。

于 2012-10-11T22:56:26.903 回答