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

发布于 2024-07-23 01:54:36 字数 268 浏览 5 评论 0原文

我有两个数据库,假设数据库 A 和 B,具有不同的数据结构。 数据库A中有一个表contacts。 数据库 B 中有一个 Accounts 表。

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

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

I have two databases, lets say Database A and B, with different datastructures.
In Database A there is a table contacts.
In Database B there is a table Accounts.

I want to transfer data from Database A table contacts to Database B table Accounts.
I am use SQL Server 2005 and want to write sql scripts to do this.

Can someone tell me what's the easiest and most efficient way to achieve this:
a) If they are on the same SQL server
b) If they are on different SQL servers.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

时光匆匆的小流年 2024-07-30 01:54:38

是一次性转账吗? 如果这是一个简单的传输,我会编写一个 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

Is it a one off transfer? If it's a simple transfer I write a SELECT statement to create the INSERT statements, i.e.

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

Run this on Database A - and it will spit out the all INSERT statements, which you copy and paste so you can run them on Database B.

Or, on the same database:

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

Still not happy - try setting up linked servers: http://msdn.microsoft.com/en-us/library/aa213778(SQL.80).aspx

╰ゝ天使的微笑 2024-07-30 01:54:38

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

Use SSIS. It will work for both local and remote cases, and will enable you to set up a transform between the tables, to map columns to lother columns etc.

浅笑依然 2024-07-30 01:54:38

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

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

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

The easiest method isn't necessarily the most efficient. SSIS is likely the most efficient, as Mitch already indicated.

The easiest (if you don't know SSIS already) is to just set up a linked server to the remote DB, and SELECT the data across using four-part naming. You set up a linked server using sp_addlinkedserver and sp_addlinkedsrvlogin (check BOL for the syntax), and query as follows:

INSERT INTO MyLocalTable (ColumnList)
SELECT <Columns> FROM RemoteServer.RemoteDB.RemoteSchema.RemoteTable
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文