0

这样做的最佳方法是什么?我发现了一些INSERT陈述,但它们似乎都只适用于内部数据库复制。

我的演绎:

INSERT INTO [PROGRAM003].[dbo].[faq]
    ([id], [category], [question], [answer], [tags])
SELECT ([id], [category], [question], [answer], [tags])
FROM [SQL2005_552664_gsow].[dbo].[faq]

我对 MSSQL 还不是很流利,因此感谢所有帮助。

4

4 回答 4

2

我们说的有多“遥远”?如果它是同一服务器上的另一个数据库,您可以在前面添加数据库名称,如您最初的示例所示:

INSERT INTO [mytable] SELECT * FROM [database].dbo.[table]

如果它在完全不同的服务器上,则需要将它们设置为链接服务器。然后你可以这样做:

INSERT INTO [mytable] SELECT * FROM [server].[database].dbo.[table]

当然,您还必须完全指定该服务器中的数据库和模式,并且预计性能会受到影响,因为它需要通过网络移动数据。

于 2009-03-03T18:04:08.750 回答
1

您可以使用OPENDATASOURCEOPENROWSET访问其他服务器上的表。您需要在查询中提供 SQL 凭据,或者设置两个数据库以允许访问您的 windows id 以使其正常工作。您还可以使用 SQL Server Management Studio 中的导入/导出向导 -- 右键单击​​数据库并选择 Tasks-->Import 或 Tasks-->Export。

于 2009-03-03T17:56:47.583 回答
1

使用大师

EXEC sp_addlinkedserver @server = 'RemoteSer',@srvproduct = '',@provider = 'MSDASQL',@provstr = 'DRIVER={SQL Server};SERVER=000.000.000.000\SQLEXPRESS;' 去

从 [RemoteSer].[bnk].[dbo].[test1] 中选择 * 进入 bnkWeb.dbo.test1

于 2011-04-14T15:06:21.040 回答
0

您可能想查看 DTS 或 (2005+) Integration Services。这两者都将从一个数据库(表)中获取数据并将数据复制到另一个数据库(表)中。

集成服务链接:http: //msdn.microsoft.com/en-us/library/ms141091.aspx

于 2009-03-03T17:55:30.677 回答