将数据从一个服务器上的一个数据库插入另一个服

时间:2011-02-11 09:06:04

标签: sql sql-server

是否有可能使用管理工作室进行此类查询?我只想将数据从一个表复制到另一个表,但这些表在其他服务器上。

3 个答案:

答案 0 :(得分:2)

Select * From ServerName1.DbName1.SchemaName1.TableName1 
来自其他服务器的

应该为您获取数据。

您需要做的就是使用完整的sql对象命名约定

[ServerName].[DbName].[SchemaName].[TableName]

答案 1 :(得分:1)

如果服务器未链接,您可能需要查看“SQL Server Import and Export Wizard”,通过右键单击数据库找到,然后选择“任务” - >“导出数据”。

这可以通过构建一个SSIS包来实现(如果你经常这样做)你可能希望保存

答案 2 :(得分:0)

您必须先创建一个链接服务器。

对于SQL Server 2012,它将是: -

USE [master]
GO

EXEC master.dbo.sp_addlinkedserver @server = N'<SERVERNAME>', @srvproduct=N'SQL Server'
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'<SERVERNAME>',@useself=N'False',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'<SERVERNAME>',@useself=N'False',@locallogin=N'sa',@rmtuser=N'sa',@rmtpassword='########'
GO

EXEC master.dbo.sp_serveroption @server=N'<SERVERNAME>', @optname=N'collation compatible', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'<SERVERNAME>', @optname=N'data access', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'<SERVERNAME>', @optname=N'dist', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'<SERVERNAME>', @optname=N'pub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'<SERVERNAME>', @optname=N'rpc', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'<SERVERNAME>', @optname=N'rpc out', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'<SERVERNAME>', @optname=N'sub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'<SERVERNAME>', @optname=N'connect timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'<SERVERNAME>', @optname=N'collation name', @optvalue=null
GO
EXEC master.dbo.sp_serveroption @server=N'<SERVERNAME>', @optname=N'lazy schema validation', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'<SERVERNAME>', @optname=N'query timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'<SERVERNAME>', @optname=N'use remote collation', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'<SERVERNAME>', @optname=N'remote proc transaction promotion', @optvalue=N'true'
GO

然后您可以使用链接服务器中的每个表,使用完整的sql对象命名约定来提及服务器名称,如: -

select *
from [server1].[database].[schema].[table] as t1
inner join [server2].[database].[schema].[table] as t2
    on t1.columnname = t2.columnname