首页 > 解决方案 > 通过 SQL 中的 OpenQuery 截断 IBM i 表

问题描述

我目前正在尝试通过使用链接服务器的 openquery 在 SSMS 中使用以下命令删除 IBM i 上表中保存的数据;

DELETE FROM OpenQuery(LnkSrv,'SELECT * FROM LibA.Table1') 

运行上述内容时,我收到一条错误消息。

链接服务器“LnkSrv”的 OLE DB 提供程序“IBMDASQL”返回消息“键列信息不足或不正确。更新影响了太多行。”。消息 7345,级别 16,状态 1,第 3 行链接服务器“LnkSrv”的 OLE DB 提供程序“IBMDASQL”无法从表“SELECT * FROM LibA.Table1”中删除。更新不符合架构要求。

标签: sqldb2linked-serverdb2-400openquery

解决方案


我的感觉是,这不是 OpenQuery 的具体问题。

我怀疑 DB2 on i 'CLRPFM' 情况和使用 OLE DB 驱动它的组合会造成某种混乱。

你的目标表有主键吗?如果没有,我会尝试添加一个。

如果您只想一次性清除表,您应该能够在 IBM i 上本地运行删除。


推荐阅读