鏈接服務器 端的表數據 單條可以更新, 批更新卻沒反應

最近在操作遠程鏈接服務器時,發現一個奇怪的問題,單筆更新操作可以,批量操作時,提示執行成功,並返回影響的行數,但查詢結果,卻並沒有發生變化。

如下的語句可以執行:

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章