我有两个数据库,比如数据库A和B,具有不同的数据结构。 在数据库A中有一个表联系人。 在数据库B中有一个表帐户。
我想将数据库A表联系人的数据传输到数据库B表帐户。 我使用的是SQL Server 2005,并希望编写sql脚本来执行此操作。
有人能告诉我最简单,最有效的方法吗? a)如果它们在同一个SQL服务器上 b)如果它们位于不同的SQL服务器上。
干杯
答案 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