此更新查询中的错误是什么?

时间:2010-01-08 09:50:27

标签: sql sql-server join sql-update

UPDATE HotelSourceMap 
SET hsm.hotelid = co.hotelid 
FROM HotelSourceMap AS hsm 
JOIN hotels AS co 
ON (hsm.hotelname= co.[name] 
AND hsm.cityid = co.cityid)

它给了我错误:The multi-part identifier "hsm.hotelid" could not be bound.

3 个答案:

答案 0 :(得分:3)

假设表中存在字段hotelid,请尝试更改:

UPDATE HotelSourceMap SET hsm.hotelid ...

UPDATE HotelSourceMap hsm SET hsm.hotelid ...

或者

UPDATE HotelSourceMap SET hotelid ...

答案 1 :(得分:1)

试试这个: -

UPDATE 
    hsm
SET 
    hotelid = co.hotelid 
FROM 
    HotelSourceMap hsm,
    Hotels co
WHERE
  hsm.hotelname= co.[name] AND hsm.cityid = co.cityid

在主要陈述中,您说您要更新 HotelSourceMap

在您的SET中,您尝试更新属于逻辑上不同的实体的字段 hsm

答案 2 :(得分:0)

更正,您需要使用别名作为UPDATE表:

UPDATE hsm
SET....
FROM HotelSourceMap AS hsm
....