sqlserver跨服务器连接数据库

文章目录

  • 开启组件
  • 语法
  • 添加链接
  • 关闭组件

开启组件

首先开启Ad Hoc Distributed Queries组件,在sql查询编辑器中执行如下语句:

exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure

开启组件的原因语法中会说到。

语法

openrowset()方法是连接其他服务器数据库的命令。
语法:openrowset(‘SQLOLEDB’,‘ip,端口’;‘username’;‘password’,‘sql语句或者表’)。
两个示例:

1.select * from openrowset('SQLOLEDB','127.0.0.1,8080';'sa';'12345678',
[Database].[dbo].table) ;
//  直接连接表可以不用带引号
2.select * from openrowset('SQLOLEDB','127.0.0.1,8080';'sa';'12345678',
'select id , name from [Database].[dbo].table') ;
//如果是sql语句需要带引号

注意:如果不开启组件,会报下面这个错误。

添加链接

如果感觉每次都是用openrowset()方法太麻烦了,可以添加一个链接服务器。

EXEC sp_addlinkedserver
@server='iptest',       --服务器别名(可以用ip,也可以自己设置,只是个名称)
@srvproduct=' ',        --链接服务器的OLEDB数据源的产品名称,对象是sqlserver可以不指定
@provider='SQLOLEDB',  --提供程序与数据源交互的动态链接库,是个连接对象,无需更改
@datasrc='101.1.101.101'  --被访问的服务器的ip

添加用户登录链接。

EXEC sp_addlinkedsrvlogin
'iptest',  --与上面的服务器别名保持一致
'false',    -- 不用管
NULL,    --不用管
'administrator', --被访问的服务器帐号
'password' --被访问的服务器密码

此时执行:
select * from [iptest].[Database].[dbo].[table]

select * from openrowset(‘SQLOLEDB’,‘127.0.0.1,8080’;‘sa’;‘12345678’,
[Database].[dbo].table) ;
效果是一样的。
建议:如果确定数据库名和表名没有重复的或者以关键字命名的,中括号可以去掉。

关闭组件

注意:如果不需要链接需要关闭组件,因为开启会有安全隐患,避免别人攻击。

exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure

如果链接不再使用,可以删除已经存在的某个链接。

Exec sp_droplinkedsrvlogin  服务器别名,Null
Exec sp_dropserver 服务器别名

sqlserver跨服务器连接数据库相关推荐

  1. SQLServer 跨服务器 查询数据

    --查看当前数据库已存在链接情况: select * from sys.servers;--使用 sp_helpserver 来显示可用的服务器 Exec sp_helpserver--删除已经存在的 ...

  2. SqlServer 跨服务器查询

    服务器A,服务器B select * from(    select a.ID as Hid,a.subjectid as Hsubjectid,b.ID as Lid,b.subjectid as ...

  3. sqlserver 跨服务器备份表

    exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Querie ...

  4. sqlserver垮库查询_sql跨库查询(sqlserver跨库查询)

    sql跨库查询(sqlserver跨库查询) 2020-07-24 11:56:42 共10个回答 首先你的要求不明确..要是按照你的要求的话以下语句就可以解决了跨库中只要用.来表示就可以了db.ta ...

  5. KSO-sqlserver跨服务器查询方法

    跨服务器查询场景: sql server跨服务器连接数据库,这个是可以实现的,但前提是你这边可以顺利连接对方的服务器,否则,纵使怎么配置也没有什么用处.在能够连接对方的服务器的基础上,我们可以通过下面 ...

  6. sqlserver 查看服务器名称以及sql语句跨服务器查询设置

    print '服务器的名称:'+@@SERVERNAME print 'SQL Server的版本' + @@VERSION SELECT @@SERVERNAME as '服务器名称' select ...

  7. update关联其他表批量更新数据-跨数据库-跨服务器Update时关联表条件更新

    1.有时在做项目时会有些期初数据更新,从老系统更新到新系统.如果用程序循环从老系统付给新系统. 2.有时在项目中需要同步程序,或者自动同步程序时会有大量数据更新就可能用到如下方法了. 3.为了做分析, ...

  8. SqlServer跨库查询

    SqlServer跨库查询 –创建远程链接服务器 execute sys.sp_addlinkedserver @server='otherServer', –被访问的服务器别名 @srvproduc ...

  9. IIS配置跨服务器迁移

    这几天,因为服务器要重装,要将此服务器的IIS网站搬到别一台服务器,因运行在此服务器上的站点有200多,不可能手动去重新设置,在网上找了一些迁移的工具,效果不理想,仔细研究IIS后,终天找到了一个比较 ...

最新文章

  1. 关于NLP相关技术全部在这里:预训练模型、图神经网络、模型压缩、知识图谱、信息抽取、序列模型、深度学习、语法分析、文本处理...
  2. C语言写一函数交换两变量的值
  3. python装饰器简单理解
  4. Android MVVM 架构应用实现
  5. 今天看到一个很个性的blog
  6. 2017年6月21号课堂笔记
  7. 130. Surrounded Regions 被围绕的区域
  8. epub 机器人系列 阿西莫夫_艾萨克·阿西莫夫是不是穿越来的,他怎么能那么准地预言机器人,互联网技术呢?...
  9. 语音媒体和信令的测试软件,IP多媒体子系统信令分析工具的设计与实现
  10. sql右下角图标工具
  11. python函数执行顺序_python下for循环接if判断的函数执行顺序
  12. Struts 2的拦截器(Interceptor)总结
  13. hadoop 分布式切换为伪分布式(单机)
  14. 汉化:Blocs for Mac(可视化网页设计工具)4.5.0
  15. tplink连接服务器失败_TPLINK无线路由WDS(桥接)设置方法图解教程 距离远增强wifi信号...
  16. 逻辑代数01律的理解_第十课:四个基本子空间——MIT线性代数课程学习笔记
  17. JavaWeb开发Listener学习
  18. 聊聊EurekaRibbonClientConfiguration
  19. 【转】简洁帮助文档制作 EasyCHM V3.84 build545 下载(含破解及注册码)
  20. 注册表REG文件编写大全

热门文章

  1. 视频号7天销售额超百万
  2. php冒泡排序 优点,浅谈php冒泡排序
  3. postman成功返回数据,但是浏览器返回状态码500,原因,传过去的参数格式出错
  4. alfred搜索到文件后打开所在目录
  5. 【simulink simscape报错】Rigidly connected port error with Simscape Multibody Contact Forces Library
  6. 【MM小贴士】副产品 工单核算
  7. HI3516DV300 BT1120输入
  8. 18位身份证号码的校验
  9. Teradata给企业一双“慧眼”
  10. 一招教你快速学会Linux ssh连接免密登录