跨服务器SQL

34

我希望将一个服务器数据库的数据移植到另一个服务器的数据库中。 这两个数据库都在不同的mssql 2005服务器上。 由于目标数据库是按[时间间隔]生成的,因此复制可能不是一个选项。

最好的情况是我想做一些像这样的事情

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

很明显,连接凭据需要在此脚本中的某个位置输入。

8个回答

39

有点晚了,但我现在才重新访问这个问题,是的,这看起来像是对我的问题的答案。尽管现在我意识到我的问题应该是我选择的答案的问题。所有事情都变得有点复杂了... - Boris Callens
4
链接失效了 :-( - Fabian Pijcke
1
是的,这就是为什么人们因为只提供链接而被批评的原因。 - M H
1
没有链接的情况下,这个答案基本上提供了与问题已经给出的相同信息。 - baltermia
在SQL Server Management Studio (SSMS)中:打开对象资源管理器。 展开服务器对象。 右键单击链接服务器。 选择新建链接服务器。您还可以在主数据库中创建同义词,以指向您的链接服务器。 - Jack

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

1
很酷,我不知道这个存在。另一方面,http://technet.microsoft.com/en-us/library/ms179856.aspx说必须要有明确的regedit来实现这个。 - Boris Callens

1
你会将整个数据库内容从一个服务器转移到另一个服务器,还是只是从一些表中复制部分数据?
无论采用哪种选项,如果您计划定期进行转移,则SSIS都能胜任。
如果您只想从1或2个表中复制一些数据,并希望在SQL管理工具中使用TSQL进行操作,则可以像pelser建议的那样使用链接服务器。
1. 将源数据库服务器设置为链接服务器。 2. 使用以下语法访问数据。
select columnName1, columnName2, etc from serverName.databaseName.schemaName.tableName

1

SQL Server Integration Services (SSIS) 是一个选择吗?如果是的话,我会使用它。


1

我不同意你关于复制的评论。您可以通过从头开始创建数据库来启动复制,并且您可以控制更新是通过更新可用客户端数据库还是仅重新创建数据库来完成。

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

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


1

你可以选择使用链接服务器的方法。

但是,你不能使用 select * into 语句,而是需要使用 insert into select 语句。

如果你没有相关经验,我建议避免使用复制功能,因为一旦出现问题,修复起来会很困难,而且如果管理不当,还容易出现其他问题。

尤其是对于小型数据库,保持简单最好。


0

你可以使用数据转换服务来完成这项工作吗?它提供了各种可组合的工具来完成这种任务。

你可以从微软网站这里下载SQL Server 2005功能包。


你可能已经知道,SSIS是SQL Server 2005+的“新”DTS。 - Galwegian

-1
CREATE VIEW newR1 
AS
SELECT * from OPENQUERY ([INSTANCE_NAME], 'select * from DbName.SchemaName.TableName')

这确实也需要联接服务器,所以基本上这只是按照几年前已经提出的同样建议进行的另一种查询方式。 - Magier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接