当前位置: 代码迷 >> Sql Server >> 数据库将一个表的某一列值覆盖到除此而外一个表的某一列值,为什么只把第一个数据传过去了呢
  详细解决方案

数据库将一个表的某一列值覆盖到除此而外一个表的某一列值,为什么只把第一个数据传过去了呢

热度:44   发布时间:2016-04-24 18:28:26.0
数据库将一个表的某一列值覆盖到另外一个表的某一列值,为什么只把第一个数据传过去了呢?
我想把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

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