SQL学习_Sql Server 跨服务器连接
Sql Server 跨服务器连接
今天偶然听到同事问怎么跨服务器连接数据库,我就写个博客复习一下吧
OPENROWSET
临时访问远程服务器
--语法
openrowset('SQLOLEDB', 'sql服务器名'; '用户名'; '密码', 数据库名.dbo.表名) as 表名
--使用实例
select * from openrowset('SQLOLEDB', '172.16.1.170'; 'sa'; '51530018ab!', DingTalk.dbo.SysUser) a
链接服务器
通常,链接服务器用于处理分布式查询
通过链接服务器,能够实现可在其他数据库中提取和更新数据的分布式数据库
你可以使用 SQL Server Management Studio 或 sp_addlinkedserver (Transact-SQL) 语句配置链接服务器。

管理链接服务器定义
- 通过运行 sp_addlinkedserver 创建链接服务器定义。
- 通过对 SQL Server sys.servers 系统目录视图执行查询,查看有关在 的特定实例中定义的链接服务器的信息。
- 通过运行sp_dropserver删除链接服务器定义。还可以使用此存储过程删除远程服务器
[sp_addlinkedserver (Transact-SQL)]:创建链接服务器
exec sp_addlinkedserver 'srv_lnk', '', 'SQLOLEDB','远程服务器名或ip地址'
示例:
exec sp_addlinkedserver 'srv_lnk', '', 'SQLOLEDB','172.16.1.170'
[sp_addlinkedsrvlogin (Transact-SQL)]:注册login帐号
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
示例:exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'sa','51530018ab!'
sp_dropserver (Transact-SQL):删除链接服务器
exec sp_dropserver 'ITSV','droplogins'
示例:
exec sp_dropserver 'srv_lnk','droplogins'