T1
新编号    老编号
1001     2001
1002     2002
1003     2003T2
编号    姓名    金额
2001   张三     10
2002   张二     2
2003   张一     5
2004   张1      5
2005   张2      5
.....结果
T2
编号    姓名    金额
1001   张三     10
1002   张二     2
1003   张一     5
2004   张1      5
2005   张2      5
...把在T1表中的新编号,替换T2表中和T1表中老编号相同的数据
谢谢

解决方案 »

  1.   

    ---------------------------------
    --  Author: liangCK 小梁
    ---------------------------------
     
    --> 生成测试数据: @T1
    DECLARE @T1 TABLE (新编号 INT,老编号 INT)
    INSERT INTO @T1
    SELECT 1001,2001 UNION ALL
    SELECT 1002,2002 UNION ALL
    SELECT 1003,2003
     
    --> 生成测试数据: @T2
    DECLARE @T2 TABLE (编号 INT,姓名 VARCHAR(4),金额 INT)
    INSERT INTO @T2
    SELECT 2001,'张三',10 UNION ALL
    SELECT 2002,'张二',2 UNION ALL
    SELECT 2003,'张一',5 UNION ALL
    SELECT 2004,'张1',5 UNION ALL
    SELECT 2005,'张2',5--SQL查询如下:UPDATE A SET
        编号=B.新编号
    FROM @T2 AS A
        JOIN @T1 AS B
    ON A.编号=B.老编号;SELECT * FROM @T2;/*
    编号          姓名   金额
    ----------- ---- -----------
    1001        张三   10
    1002        张二   2
    1003        张一   5
    2004        张1   5
    2005        张2   5(5 row(s) affected)
    */
      

  2.   

    UPDATE T2 SET T2.编号 =T1.编号  FROM T1 WHERE T1.老编号=T2.编号
      

  3.   

    select isnull(新编号,编号),姓名,金额
    from t2 
    left join t1 on t1.老编号 = t2.编号
      

  4.   

    update T2
    set t2.编号=t1.新编号
    from T1
    where t2.编号=t1.老编号
      

  5.   

    update T2
    set t2.编号=t1.新编号 FROM T1 WHERE t2.编号=t1.老编号
      

  6.   

    update T2 set t2.编号=t1.新编号
    from T1
    where t2.编号=t1.老编号
      

  7.   

    update T2
      set 编号 = T1.编号
    from
      T1
    where
      T2.编号 = T1.编号
      

  8.   

    update T2 
      set 编号 = T1.新编号 
    from 
      T1 
    where 
      T2.编号 = T1.老编号