SQL Server:使用旧表数据和不同列类型插入新表

时间:2014-12-19 15:19:09

标签: sql sql-server

我正在为我们正在处理的当前应用程序进行数据迁移。迁移涉及旧数据库和新数据库。旧的数据库没有规范化,并且有大表。我们创建了一个新的数据库,现在有许多表可以更好地存储数据。我现在的问题是: 我有一张旧桌子。我试图从旧表中复制数据,插入到新表中。新表现在将一个字段从varchar转换为int,并且是一个FK到一个单独的表(因此涉及3个表)我已经给出了下面的表结构的片段以及需要完成的内容。我在过去的两天里一直在搜索,似乎无法找到答案。

OldTable(PersonID,FileName,AttachType)

NewTable(PersonID,FileName,AttachTypeID)

tblAttachType(AttachTypeID,TypeName)

所以我需要将旧表数据传输到新表,而AttachType需要查看" TypeName"匹配,然后在新表中插入" AttachTypeID"来自" tblAttachType"。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

您应该能够通过从您拥有的表中进行选择来插入所需的数据。

INSERT INTO NewTable (PersonID, FileName, AttachTypeID)
SELECT o.PersonID, o.FileName, t.AttachTypeID
FROM OldTable o
JOIN tblAttachType t on o.AttachType = t.TypeName