我有两个表,我想加入到一个表中,并使用TypeID来区分它们。比方说,类型为A和B的表是A_Level和B_LevelSQL合并两个表并更新引用ID
A的表看起来像
级别
Level_ID说明
B的表看起来像
级别
Level_ID LEVEL_DESC
A的Level_ID从表C引用为Level_ID
B的Level_ID从表D引用为Level_ID
我正在查找将两个表合并成一个表(Level_Code)并相应地更新引用的表ID的脚本。
任何帮助,非常感谢。
我有两个表,我想加入到一个表中,并使用TypeID来区分它们。比方说,类型为A和B的表是A_Level和B_LevelSQL合并两个表并更新引用ID
A的表看起来像
级别
Level_ID说明
B的表看起来像
级别
Level_ID LEVEL_DESC
A的Level_ID从表C引用为Level_ID
B的Level_ID从表D引用为Level_ID
我正在查找将两个表合并成一个表(Level_Code)并相应地更新引用的表ID的脚本。
任何帮助,非常感谢。
select a.Level_Id ALevelId, b.Level_Id BLevelId,
case ISNULL(a.Level_Id, 0) when 0 then 'B' else 'A' end AS Type,
case ISNULL(a.Level_Id, 0) when 0 then b.Level_Id else a.Level_Id end AS NewLevel_Id
INTO Dummy
FROM a
FULL JOIN b On (a.Level_ID = b.Level_ID);
UPDATE c
SET c.Level_id = Dummy.NewLevel_Id
from Dummy, c
WHERE c.Level_Id = Dummy.ALevelId
AND Dummy.Type = 'A';
UPDATE d
SET d.Level_id = Dummy.NewLevel_Id
from Dummy, d
WHERE d.Level_Id = Dummy.BLevelId
AND Dummy.Type = 'B';
SELECT Dummy.NewLevel_Id, a.Level, a.LevelDesc As Description
INTO YourNewTable
from Dummy JOIN a ON (Dummy.ALevelId = a.Level_Id)
Where Dummy.Type = 'A'
UNION
SELECT NewLevel_Id, Level, LevelDesc As Description
from Dummy JOIN b ON (Dummy.BLevelId = b.Level_Id)
Where Dummy.Type = 'B'
DROP TAble Dummy;
Im在关键字'AS'附近获得错误的语法。从查询的第二行以及reate Table YourNewTable – Gage 2010-08-10 15:40:42
@Gage之后,我已经更新了脚本 – 2010-08-10 16:22:15
您使用的数据库是?你确定TableA和TableB中没有重复的ID号吗? – JNK 2010-08-10 14:48:47
TableA和TableB中存在重复的ID号,这就是为什么我需要使用新ID更新参考表 – Gage 2010-08-10 14:50:54
好的,您使用的是哪个DB? – JNK 2010-08-10 14:53:26