我目前正在尝试使用链接服务器通过openquery删除IBM i上的表中保存的数据,并在SSMS中使用以下命令;
DELETE FROM OpenQuery(LnkSrv,'SELECT * FROM LibA.Table1')
运行上面的内容时,我收到一条错误消息。
链接服务器“LnkSrv”的OLE DB提供程序“IBMDASQL”返回消息“键列信息不足或不正确。更新会影响太多行。”。消息7345,级别16,状态1,行3链接服务器“LnkSrv”的OLE DB提供程序“IBMDASQL”无法从表“SELECT * FROM LibA.Table1”中删除。更新不符合架构要求。
我的感觉是,这不是一个具体的OpenQuery问题。
我怀疑DB2 on i'CLRPFM'情况与使用OLE DB驱动它的组合导致某种纠结。
您的目标表是否有主键?如果没有,我会尝试添加一个。
如果您只想一次性清除表,则应该能够在IBM i上本机运行删除。