SQL Server跨服务器查询

Posted hao_1234_1234

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server跨服务器查询相关的知识,希望对你有一定的参考价值。

 

来源:https://www.cnblogs.com/tylerflyn/p/8339895.html

创建链接服务器

exec sp_addlinkedserver \'ITSV\', \' \', \'SQLOLEDB\', \'远程服务器名或ip地址\' 
exec sp_addlinkedsrvlogin \'ITSV\', \'false \',null, \'用户名\', \'密码\'

--查询示例 
select * from ITSV.数据库名.dbo.表名

--导入示例 
select * into 表 from ITSV.数据库名.dbo.表名

--以后不再使用时删除链接服务器 
exec sp_dropserver \'ITSV\', \'droplogins\'

--连接远程/局域网数据(openrowset/openquery/opendatasource) 
--1、openrowset

--查询示例 
select * from openrowset( \'SQLOLEDB\', \'sql服务器名\'; \'用户名\'; \'密码\',数据库名.dbo.表名)

--生成本地表 
select * into 表 from openrowset( \'SQLOLEDB\', \'sql服务器名\'; \'用户名\'; \'密码 \',数据库名.dbo.表名)

--把本地表导入远程表 
insert openrowset( \'SQLOLEDB\', \'sql服务器名\'; \'用户名\'; \'密码\',数据库名.dbo.表名) 
select *from 本地表

--更新本地表 
update b 
set b.列A=a.列A 
from openrowset( \'SQLOLEDB\', \'sql服务器名\'; \'用户名\'; \'密码\',数据库名.dbo.表名)as a inner join 本地表 b 
on a.column1=b.column1

 -------------------------

案例

--建立远程数据库连接,导入远程数据表
--exec sp_addlinkedserver \'ITSV\', \' \', \'SQLOLEDB\', \'115.28.183.152\'
--exec sp_addlinkedsrvlogin \'ITSV\', \'false \',null, \'sa\', \'Y5QDlBY972hOAApIrV1O\'
--select * from [ITSV].[ProjectManagement].[dbo].[T_User]
--insert into [ITSV].[ProjectManagement].[dbo].[T_AttributeEnums](AttributeEnumTypeID,EnumSeq, EnumName, EnumLongname, EnumAbridge) (select AttributeEnumTypeID, EnumSeq,EnumName, EnumLongname, EnumAbridge from [ProjectManagement].[dbo].[T_AttributeEnums] )
--exec sp_dropserver \'ITSV\', \'droplogins\' --删除连接

 

以上是关于SQL Server跨服务器查询的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 复制(跨数据库查询和约束)

SQL SERVER 跨服务器查询

SQL Server 实现跨服务器查询的方式

SQL Server 2012 - 在函数内部运行动态查询(或跨链接服务器执行函数)

SQL Server 跨服务器操作

SQL Server表上的跨服务器查询的行丢失,可能是由于用户权限