日期:2014-05-16  浏览次数:20459 次

数据库将一个表的某一列值覆盖到另外一个表的某一列值,为什么只把第一个数据传过去了呢?
我想把POI_point表中的NAME这一列的值用表sheet中的F1这一列的值代替。 用Update语句更新后为什么只把sheet表中的第一行的值覆盖到整个POI_point表中的NAME一列的值,如图所示:

覆盖到NAME一列中,结果成了这:



我写的update 语句是:

update POI_point
set NAME = Sheet.F1
from Sheet
------解决方案--------------------
try this,

update a 
 set a.NAME=b.F1
 from (select *,row_number() over(order by getdate()) 'rn' from POI_point) a
 inner join (select *,row_number() over(order by getdate()) 'rn' from Sheet) b on a.rn=b.rn

------解决方案--------------------
你导入的选项有误