跨服务器、跨库操作SQL

方式一:只是当前连接可以使用

--在执行跨服务器查询之前,运行
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure

insert into OPENDATASOURCE(
'SQLOLEDB',
'Data Source=地址;User ID=用户;Password=密码'
).数据库名.dbo.表名
select * from 本地表名

--查询结束后,运行
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure

方式二:可以保存在【服务器对象--链接服务器 中长期存储,可以使用别名,跨多个服务器】推荐这种

-- 添加数据库连接信息
-- A系统
EXEC sp_addlinkedserver @server = 'XTC',@srvproduct = '',@provider = 'SQLNCLI',@datasrc = '地址';
EXEC sp_addlinkedsrvlogin @rmtsrvname = 'XTC',@useself = 'false',@locallogin = NULL,@rmtuser = 'sa',@rmtpassword = '密码';
GO
-- A系统
EXEC sp_addlinkedserver @server = 'OPPO',@srvproduct = '',@provider = 'SQLNCLI',@datasrc = '地址';
EXEC sp_addlinkedsrvlogin @rmtsrvname = 'OPPO',@useself = 'false',@locallogin = NULL,@rmtuser = 'sa',@rmtpassword = '密码';
GO
-- 删除数据库连接信息
EXEC sp_dropserver @server = 'XTC',@droplogins = 'droplogins';
EXEC sp_dropserver @server = 'OPPO',@droplogins = 'droplogins';
--GO
--查看数据库连接信息
EXEC sp_helpserver;
GO

 select * from 别名.database_name.dbo.table_name go --DBVIP.database_name.dbo.table_name 远程服务器完整表名(必须用4部分表示)

原文地址:https://www.cnblogs.com/vsnb/p/11597035.html