通过SQL中的OpenQuery截断IBM i表

时间:2019-03-08 11:24:30

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

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

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

运行以上命令时,出现错误消息。

  

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

1 个答案:

答案 0 :(得分:0)

我的感觉是,这不是OpenQuery的专门问题。

我怀疑在“ CLRPFM”情况下使用DB2以及使用OLE DB驱动它的结合会引起某种纠结。

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

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