如何手动将行从一个数据库移动到下一个数据库?

时间:2012-03-05 19:58:04

标签: sql sql-server sql-server-2008 schema sql-server-2008-r2

我在同一台服务器上有两个数据库。一个db比另一个db更新,并且已经对其架构进行了相当多的修改。我想将数据从旧数据库中的表传输到新数据库中的表,但我需要完全控制该进程,以便我可以模拟旧数据以适应新模式。

[NewDB].[dbo].[Aliases]

[OldDB].[Terminal].[Alias]

我还不擅长SQL。有没有办法可以遍历旧表中的所有记录,然后在循环的每次迭代中为新表创建一个自定义插入语句?

4 个答案:

答案 0 :(得分:3)

尝试INSERT SELECT语句。

INSERT INTO [NewDB].[dbo].[Aliases] 
SELECT columns
FROM [OldDB].[Terminal].[Alias]

http://msdn.microsoft.com/en-us/library/ms174335(v=sql.100).aspx - 派生表部分 http://msdn.microsoft.com/en-us/library/ms189499(v=sql.100).aspx

答案 1 :(得分:2)

与两个表位于同一数据库中的方式相同。只需完全限定表的名称。例如:

INSERT INTO [NewDB].[dbo].[Aliases] (col1, col2, col3)
    SELECT LEFT(col1,3), col2, col3 FROM [OldDB].[Terminal].[Alias]

答案 2 :(得分:2)

根据您要传输的数据大小,您可能需要考虑使用BULK INSERThttp://msdn.microsoft.com/en-us/library/ms188365.aspx

答案 3 :(得分:0)

INSERT INTO NEWDB..TABLENAME( *fieldlist* )
SELECT *fieldlist* FROM OLDDB..TABLENAME