繁体   English   中英

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

[英]inserting data from one database on one server to another database on other server

使用Management Studio是否可以进行这样的查询? 我只想将数据从一个表复制到另一个表,但是这些在其他服务器上。

Select * From ServerName1.DbName1.SchemaName1.TableName1 

从另一台服务器应该为您获取数据。

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

这是

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

如果未链接服务器,则可能需要查看“ SQL Server导入和导出向导 ”,该向导是通过右键单击数据库,然后选择“任务”->“导出数据”找到的。

这是通过构建一个SSIS包来工作的,如果您希望定期保存,则可以将其保存(如果您定期执行此任务)

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

对于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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM