34

我想将数据从一台服务器的数据库移植到另一台服务器的数据库。数据库都位于不同的 mssql 2005 服务器上。复制可能不是一种选择,因为目标数据库是在 [时间间隔] 基础上从头开始生成的。

最好我会做类似的事情

insert *
from db1/table1
into db2/table2
where rule1 = true

很明显,连接凭据会出现在这个脚本中。

4

8 回答 8

38

我认为你想要做的是根据这篇msdn 文章创建一个链接服务器。然后,您将选择使用 4 部分对象名称,例如:

Select * From ServerName.DbName.SchemaName.TableName
于 2008-09-16T08:59:04.843 回答
8

您可以像这样使用开放数据源:

EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO

EXEC sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE
GO


SELECT  *
FROM    OPENDATASOURCE('SQLOLEDB',
                   'Data Source=<Ip Of Your Server>;
                    User ID=<SQL User Name>;Password=<SQL password>').<DataBase name>.<SchemaName>.<Table Or View Name>

Go
于 2013-09-06T13:39:29.817 回答
1

SQL Server 集成服务 (SSIS) 是一种选择吗?如果是这样,我会使用它。

于 2008-09-16T08:52:50.020 回答
1

您是将数据库的全部内容从一台服务器传输到另一台服务器,还是只是从几个表中传输一些数据?

对于这两个选项,SSIS 都可以完成这项工作,特别是如果您计划定期转移。

如果您只是想从 1 个或 2 个表中复制一些数据,并且更喜欢在 SQL Management Studio 中使用 TSQL,那么您可以按照 pelser 的建议使用链接服务器

  1. 将源数据库服务器设置为链接服务器
  2. 使用以下语法访问数据
select columnName1, columnName2, etc from serverName.databaseName.schemaName.tableName
于 2008-09-16T09:48:34.053 回答
1

好吧,我不同意您对复制的评论。您可以通过从头开始创建数据库来启动复制,并且您可以通过更新可用的客户端数据库或简单地重新创建数据库来控制更新。

自动复制将通过自动管理密钥和关系来简化您的工作。

我认为最简单的做法是通过 MSSQL Server Studio 启动快照复制,获取 T-SQL 对应的脚本(即发布和订阅都对应的 T-SQL 指令),并将这些脚本作为作业的一部分记录在SQL 代理的作业列表或复制文件夹中的复制作业。

于 2008-09-16T13:34:16.757 回答
1

你可以去链接服务器路由。

你只是不能使用 select * into 你必须插入到 select 中。

如果您没有使用它的经验,我会避免复制,因为如果它坏了可能很难修复,如果管理不当,可能容易出现其他问题。

保持简单,尤其是在数据库很小的情况下。

于 2008-09-16T20:54:30.537 回答
0

您可以使用数据转换服务来完成这项工作吗?这为做这种事情提供了各种螺栓连接的工具。

您可以在此处从 Microsoft 网站下载 SQL Server 2005 功能包

于 2008-09-16T08:50:47.327 回答
-1
CREATE VIEW newR1 
AS
SELECT * from OPENQUERY ([INSTANCE_NAME], 'select * from DbName.SchemaName.TableName')
于 2016-09-22T01:40:47.957 回答