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表中老编号相同的数据
谢谢
新编号 老编号
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表中老编号相同的数据
谢谢
-- 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)
*/
from t2
left join t1 on t1.老编号 = t2.编号
set t2.编号=t1.新编号
from T1
where t2.编号=t1.老编号
set t2.编号=t1.新编号 FROM T1 WHERE t2.编号=t1.老编号
from T1
where t2.编号=t1.老编号
set 编号 = T1.编号
from
T1
where
T2.编号 = T1.编号
set 编号 = T1.新编号
from
T1
where
T2.编号 = T1.老编号