带有连接的Openquery更新中的无效对象名称

时间:2014-06-04 23:00:37

标签: sql sql-server oracle

我有以下查询,它给了我一个"无效的对象名称' E1'"

据我所知,我的查询是正确的,我想知道它是否就像我无法使用连接更新开放查询一样简单。有什么建议吗?

update E1 Set e1.LILRCJ = GRDATE  from Openquery(E1_PROD_ORA, 'Select * From Proddta.F41021') E1
        Inner Join dbo.Temp2
        On E1.LiITM = IMITM
        and ltrim(rtrim(E1.LIMCU)) = E1BU
        and E1.LILOCN = Storage
    where GRDate <> '0'

1 个答案:

答案 0 :(得分:0)

documentation说:

  

在FROM中调用OPENDATASOURCE,OPENQUERY或OPENROWSET   子句是单独评估的,独立于任何调用   这些函数用作更新的目标,即使相同   参数提供给两个调用。特别是过滤或加入   应用于其中一个调用的结果的条件无效   关于另一方的结果。

这表明你不能做你想做的事。

您可以对此查询进行重新设置,但有助于了解GRDATE以及没有表别名的其他变量来自何处。