数据库
首页 > 数据库> > T-SQL——关于跨库连接查询

T-SQL——关于跨库连接查询

作者:互联网

目录

shanzm-2021年8月28日 16:56:34

0. 同一台服务器不同数据库

同一个服务器中在一个连接查询不同的数据库中的表,可以在表名前加上数据库的名为前缀

【示例】

select * from 数据库.dbo.表


1. 使用跨库查询函数——OpenDataSource()

在不同服务器中,一个服务器的连接中查询另外一个服务器中的数据库,可以在sql语句中使用OpenDataSource('sqloledb','server=服务器IP地址;uid=数据库登陆用户;pwd=密码').数据库名.dbo.表名

【示例】

select * from OpenDataSource('sqloledb','server=xxx.xxx.xxx.xxx;uid=sa;pwd=*****').database_name.dbo.table_name

【说明】



2. 使用链接服务器(Linking Server)

  1. 使用图形界面创建链接服务器:

    创建链接服务器,可以使用MSSMS-->服务器对象-->链接服务器-->右键:新建链接服务器

    常规:

    • 链接服务器:服务器IP地址
    • 服务器类型:选择SQL Server

    安全性:

    • 选中使用此安全上下文建立连接
    • 输入用户名和密码
  2. 使用存储过程创建链接服务器

当前服务器的连接中,同时执行以下存储过程,创建其他服务器(即目标服务器)为链接服务器

exec sp_addlinkedserver--创建链接服务器
@server='链接名称',--要访问的服务器别名(一般就是直接使用服务器地址)
@srvproduct='',
@provider='SQLOLEDB',
@datasrc='目标服务器地址'--要访问的服务器地址
go
exec sp_addlinkedsrvlogin--添加链接服务器的登陆用户
'链接名称',--被访问的服务器别名
'false',
 null,
'用户名',--目标服务器账号
'密码'--目标服务器密码

示例:从链接服务器中查询

select * from 链接服务器别名.database_name.dbo.table_name


3. 使用OpenDataSource()函数和链接服务器的使用区别



4. 参考

标签:--,OpenDataSource,SQL,查询,跨库,服务器,Server,链接
来源: https://www.cnblogs.com/shanzhiming/p/15200513.html