链接服务器 端的表数据 单条可以更新, 批更新却没反应

时间:2022-11-20 12:42:10

最近在操作远程链接服务器时,发现一个奇怪的问题,单笔更新操作可以,批量操作时,提示执行成功,并返回影响的行数,但查询结果,却并没有发生变化。

如下的语句可以执行:

UPDATE [192.168.1.1].DB1.dbo.ddfhmx SET jga=60.91 WHERE fhdbh='1206280028' AND fhdmxbh='002'

这样写就不行了:

UPDATE a SET a.xsdj=b.xsdj ,a.jga=b.relatedPrice
FROM [192.168.1.1].DB1.dbo.ddfhmx a
LEFT JOIN [192.168.1.1].DB1.dbo.ddmx b ON a.ddbh=b.ddbh
WHERE a.fhdbh='1206280028' AND (a.xsdj<>b.xsdj OR a.jga<>b.relatedPrice)

百思不得其解,最后更改写法,使用OPENQUERY就OK了。如下:

UPDATE  OPENQUERY([192.168.1.1],'SELECT a.jga,b.relatedPrice
      FROM DB1.dbo.ddfhmx a
      LEFT JOIN DB1.dbo.ddmx b ON a.ddbh=b.ddbh
      WHERE a.fhdbh=''1206280028'' AND (a.xsdj<>b.xsdj OR a.jga<>b.relatedPrice)')
SET jga=relatedPrice

有关OPENQUERY的详细说明,请参考微软网站:http://technet.microsoft.com/zh-cn/library/ms188427.aspx