0

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

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

有人可以告诉我实现这一目标的最简单和最有效的方法是什么:
a)如果它们在同一个 SQL 服务器上
b)如果它们在不同的 SQL 服务器上。

4

3 回答 3

2

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

最简单的(如果您还不知道 SSIS)是只需将链接服务器设置到远程数据库,然后使用四部分命名来选择数据。您使用 sp_addlinkedserver 和 sp_addlinkedsrvlogin 设置链接服务器(检查 BOL 的语法),并查询如下:

INSERT INTO MyLocalTable (ColumnList)
SELECT <Columns> FROM RemoteServer.RemoteDB.RemoteSchema.RemoteTable
于 2009-06-10T02:42:54.050 回答
1

使用 SSIS。它适用于本地和远程情况,并使您能够在表之间设置转换,将列映射到洛瑟列等。

于 2009-06-10T02:31:01.407 回答
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

于 2009-06-10T02:42:07.547 回答