使用另一个具有公共连接列的table.column更新table.column

时间:2010-06-09 19:32:27

标签: sql sql-server

点击减速带,尝试从另一个表中更新表格中的某些列值。

当一切正常时,应该会发生这种情况

  
      
  1. 通过创建将zip城市从已加入的城市/州邮政编码字段移至tblWADonations城市州的更新语句,更正tblWADonations中的所有城市,州条目
  2.   

TBL NAME |专栏名称

  1. tblZipcodes with zip,city,State
  2. tblWADonations with zip,oldcity,oldstate
  3. 这是我到目前为止所做的:

     UPDATE    tblWADonations
     SET              oldCity = tblZipCodes.city, oldState = tblZipCodes.state
     FROM         tblWADonations INNER JOIN
                      tblZipCodes ON tblWADonations.zip = tblZipCodes.zip
     Where oldCity <> tblZipcodes.city;
    

    似乎有简单的方法可以在线完成此操作,但我忽视了一些事情。通过手工和编辑来尝试这是它的回击。

      

    Msg 8152,Level 16,State 2,Line 1   字符串或二进制数据将被截断。   声明已经终止。

    请包含sql语句或我需要进行编辑的位置,以便我可以在收藏夹中将此帖子标记为参考。谢谢!

2 个答案:

答案 0 :(得分:0)

查看两个表的列定义,特别是比较您尝试相互复制的列 - 这应该会为您提供关于错误出现的原因的提示。

由于这是标记的作业,我将在此处留下答案。

答案 1 :(得分:0)

检查您的表定义,以确保您尝试更新的VARCHAR字段的最大大小匹配。您看到的错误表明正在更新/比较的字段的大小小于您尝试使用它更新的数据。

根据经验,请尝试确保比任何类似字段(例如cityoldCity)的大小相同,以避免将来发生此类问题。