更新列基于2键sql server

时间:2012-04-18 14:53:05

标签: sql sql-server-2008

我有以下数据库表

  • 主表 - 包含数据范围的PK Id列
  • 参考表 - 具有相关代码的数据范围的临时表
  • 目标表 - 根据主表和参考表插入或更新Id列的表

    Reference Table
          Code      From        To
          Abc45     200        400
          Cde78     0          128
          Fcde1     600        898

    Master Table
          Id        From        To
           1        1          100
           2        200        400
           3        0          128
           4        600        898

    Target Table
         Name      id      City      Country      Code
         West               B          CC         Fcde1
         East               V          GG         Cde78 
         North              T          TT         Abc45
         South              Z          YY         Abc45

提前致谢

1 个答案:

答案 0 :(得分:2)

试试这个:

UPDATE  t
SET     t.id = other.id
FROM    Traget t
JOIN    (SELECT r.code, m.id
      FROM Master m
      INNER JOIN Reference r ON m.From = r.From AND m.To = r.To
      ) other
ON      t.Code = other.Code

我使用此问题Update with inner join?作为参考。