将数据从一个数据库传输到另一个数据库

时间:2009-06-10 02:28:53

标签: sql-server database data-transfer

我有两个数据库,比如数据库A和B,具有不同的数据结构。 在数据库A中有一个表联系人。 在数据库B中有一个表帐户。

我想将数据库A表联系人的数据传输到数据库B表帐户。 我使用的是SQL Server 2005,并希望编写sql脚本来执行此操作。

有人能告诉我最简单,最有效的方法吗? a)如果它们在同一个SQL服务器上 b)如果它们位于不同的SQL服务器上。

干杯

3 个答案:

答案 0 :(得分:1)

使用SSIS。它适用于本地和远程情况,并且可以让您在表之间设置转换,将列映射到其他列等。

答案 1 :(得分:1)

这是一次转让吗?如果它是一个简单的传输,我写一个SELECT语句来创建INSERT语句,即

SELECT 'INSERT INTO Accounts (ID, Name) VALUES (' + CAST(ID as VARCHAR) + ', ''' + Name  + ''')'
FROM Contacts

在数据库A上运行它 - 它将吐出所有INSERT语句,您可以复制并粘贴这些语句,以便在数据库B上运行它们。

或者,在同一个数据库中:

INSERT INTO DatabaseA.dbo.Accounts (ID, Name) 
SELECT Id, Name
FROM DatabaseB.dbo.Contacts

仍然不满意 - 尝试设置关联服务器:http://msdn.microsoft.com/en-us/library/aa213778(SQL.80).aspx

答案 2 :(得分:1)

最简单的方法不一定是最有效的方法。正如米奇已经指出的那样,SSIS可能是最有效的。

最简单的(如果你还不知道SSIS)就是设置一个到远程数据库的链接服务器,并使用四部分命名来选择数据。使用sp_addlinkedserver和sp_addlinkedsrvlogin设置链接服务器(检查BOL的语法),并按如下方式查询:

INSERT INTO MyLocalTable (ColumnList)
SELECT <Columns> FROM RemoteServer.RemoteDB.RemoteSchema.RemoteTable