[英]SQL Server: inserting data from one database to another database structure by specific date
[英]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.