sql update table set – 无法绑定多部分标识符

前端之家收集整理的这篇文章主要介绍了sql update table set – 无法绑定多部分标识符前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有2张桌子:

>表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

我想用表A中的坐标信息更新此表.我按照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)

我收到以下错误消息:

Msg 4104,Level 16,State 1,Line 1
The multi-part identifier “t1.Lattitude1” could not be bound.

但是,如果我执行以下操作,则可以将其存储到另一个表中.

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的新手,很难理解为什么有些东西有效,有些则没有.基于我在上面发布的链接,我的初始查询应该有效 – 不是吗?也许我没有直接思考,因为我花了很多时间尝试这个,我终于得到了同事的帮助(她提出了我上面提到的方法).

解决方法

我认为您可以修改UPDATE语句以引用UPDATE行中的表别名.
update t1
set t1.[Lattitude1] = t2.[Lattitude]
from table1 t1
left join table2 t2 
on (t1.StationID1 = t2.IDInfo)

猜你在找的MsSQL相关文章