簡體   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