【问题标题】:Truncating IBM i table via OpenQuery in SQL通过 SQL 中的 OpenQuery 截断 IBM i 表
【发布时间】:2019-03-08 11:24:30
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: sql db2 linked-server db2-400 openquery


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-03-01
      • 1970-01-01
      • 2016-03-07
      • 2015-06-05
      • 1970-01-01
      • 1970-01-01
      • 2019-10-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多