Sql server SQL Server从链接服务器更新映像数据类型时出错

Sql server SQL Server从链接服务器更新映像数据类型时出错,sql-server,Sql Server,这是Microft Dynamics 2009数据库中的一个表。我们的测试数据库缺少一组图像数据,所以我想用生产中的数据更新测试中的表。我正在使用此SQL进行此更新。执行此操作时,会出现以下错误: Msg 8180,第16级,状态1,第1行 无法准备对账单。 Msg 306,16级,状态2,第1行 文本、ntext和图像数据类型不能进行比较或排序,除非使用IS NULL或LIKE运算符 查询: UPDATE INVENTTABLE SET Z_IMAGE = i2.Z_IMAGE,

这是Microft Dynamics 2009数据库中的一个表。我们的测试数据库缺少一组图像数据,所以我想用生产中的数据更新测试中的表。我正在使用此SQL进行此更新。执行此操作时,会出现以下错误:

Msg 8180,第16级,状态1,第1行
无法准备对账单。
Msg 306,16级,状态2,第1行
文本、ntext和图像数据类型不能进行比较或排序,除非使用IS NULL或LIKE运算符

查询:

UPDATE INVENTTABLE 
SET
    Z_IMAGE = i2.Z_IMAGE,
    Z_IMAGEMIMETYPE = i2.Z_IMAGEMIMETYPE
FROM INVENTTABLE i1
    JOIN [PRODSQLSERVER].[DAX2009DB].[dbo].INVENTTABLE i2
        ON i1.RECID = i2.RECID
WHERE i2.Z_IMAGE IS NOT NULL

我看不到我正在尝试对图像数据进行比较或排序的地方。

尝试更改UPDATE INVENTTABLE以更新i1。

我唯一能想到的是,尝试将is not null替换为(当i2.Z_图像为null时,则0 ELSE 1 END)=1,看看它是否喜欢。起初我甚至没有where子句,还是会出错,所以我认为这与错误无关。我不在乎是否所有记录都得到更新,所以where只是一个简单的解决方案。i2是源表的别名。@Jeffredy抱歉,我的意思是将其更改为使用目标的别名。这会导致错误:Msg 4104,级别16,状态1,第1行多部分标识符“i1.Z_IMAGE”无法绑定。@JeffReddy您确定该表中的目标服务器上存在Z_IMAGE列吗?是的,它存在。我认为这与链接服务器有关。