我有2個表:SQL更新表組 - 的多部分標識符無法綁定
- 表1 =加油站的名稱(在對)
- 表2 =具有共統籌 實施例表1的
信息(經度和緯度除其他事項外):
StationID1 StationID2 Name1 Name2 Lattitude1 Longitude1 Lattitude2 Longitude2 Distance
------------------------------------------------------------------------------------------------
93353477 52452 FOO BAR NULL NULL NULL NULL NULL
93353527 52452 HENRY BENNY NULL NULL NULL NULL NULL
93353551 52452 GALE SAM NULL NULL NULL NULL NULL
實施例的表2 :
IDInfo Name Lattitude Longitude
-------------------------------------------
93353477 BAR 37.929654 -87.029622
我想更新此表與座標駐留在tableA
信息。我試着做以下按SQL Server 2005: The multi-part identifier … could not be bound
update table1
set t1.[Lattitude1] = t2.[Lattitude]
from table1 t1
left join table2 t2
on (t1.StationID1 = t2.IDInfo)
我收到以下錯誤信息:
消息4104,級別16,狀態1,行1
多部分標識符「T1 .Lattitude1「無法綁定。
但是,如果我做了以下工作,然後我可以存儲到另一個表。
SELECT t1.[StationID1]
,t1.[StationID2]
,t1.[Name1]
,t1.[Name2]
,t2.[Lattitude] AS [Lattitude1]
,t2.[Longitude] AS [Longitude1]
,t3.[Lattitude] AS [Lattitude2]
,t3.[Longitude] AS [Longitude2]
from table1 t1
left join table2 t2
on (t1.StationID1 = t2.IDInfo)
left join table2 t3
on (t1.StationID2 = t2.IDInfo)
我對SQL很新,很難理解爲什麼有些東西可以工作,而有些則不瞭解。基於我上面發佈的鏈接,我的初始查詢應該已經工作 - 不是嗎?也許我沒有直接思考,因爲我已經花了很多時間嘗試這個,我終於從同事那裏得到了幫助(她建議我上面提到的方法)。
最好不要在FROM子句中使用別名或重複table1:update table1 set Lattitude1 = table2.Lattitude from table2 where table2.IDInfo = table1.StationID1。 SQL Server的「UPDATE ... FROM」結構是非標準的,特別是當使用別名時 - 有點神祕。如果FROM子句中的表或別名與UPDATE之後的內容匹配,那麼這些表會被神奇地識別,但如果涉及遠程查詢,則這可能會中斷(請參閱UPDATE .. FROM的幫助和http://bit.ly/14EXoZP)。 –
@cgatian,鮑勃 - 非常感謝你的幫助。你的兩個解決方案都有效。我注意到史蒂夫卡斯提到的問題以防萬一。謝謝你們。 – codingknob