在好例子网,分享、交流、成长!
您当前所在位置:首页SQL 开发实例SQL基础 → SQLServer 多库查询

SQLServer 多库查询

SQL基础

下载此实例
  • 开发语言:SQL
  • 实例大小:0.01M
  • 下载次数:1
  • 浏览次数:6
  • 发布时间:2025-05-01
  • 实例类别:SQL基础
  • 发 布 人:MUMU666
  • 文件格式:.docx
  • 所需积分:3
 相关标签: SQLServer Server sql rve LS

实例介绍

【实例简介】

SQLServer 多库查询 sp_addlinkedserver使用方法(添加链接服务器)

 

使用SQL Server数据库时,经常遇到需要在实例Instance01中跨实例访问Instance02中的数据。例如在做数据迁移时,如下语句:

 

insert into Instance01.DB01.dbo.Table01

 

          select * from Instance02.DB01.dbo.Table01

 

普通情况下,这样做是不允许的,因为SQL Server默认不可以跨实例访问数据。解决方案是使用存储过程sp_addlinkedserver进行实例注册。

 

sp_addlinkedserverMSDN中的定义为:

 

sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ]     

 

      [ , [ @provider= ] 'provider_name' ]    

 

      [ , [ @datasrc= ] 'data_source' ]

 

      [ , [ @location= ] 'location' ]

 

      [ , [ @provstr= ] 'provider_string' ]

 

      [ , [ @catalog= ] 'catalog' ]

 

例如:在Instance01实例中,执行如下SQL语句EXEC sp_addlinkedserver Instance02//只写第一个参数即可,默认情况下,注册的是SQL Server数据库,其他参数用法详见MSDN

 

如果你的两个实例在同一个域中,且Instance01Instance02有共同的域登陆帐号,那么经过上面的注册后,前面的insert语句就可以执行了。否则,还需要对注册的远程实例进行登陆帐号注册,在Instance01实例中,执行如下SQL语句

 

EXEC sp_addlinkedsrvlogin 'InstanceName','true'  //使用集成认证访问远程实例

 

或者 EXEC sp_addlinkedsrvlogin 'InstanceName','false','TJVictor,'sa','Password1' //使用Windows认证访问远程实例,当用户以TJVictor用户登陆Instance01实例访问Instance02时,默认把TJVictor映射成sa,且密码为Password1

 

经过 sp_addlinkedserver实例注册和sp_addlinkedsrvlogin登陆帐户注册后,就可以在Instance01中直接访问Instance02中的数据库数据了。

 

如果还无法访问,请检查本机DNS是否可以解析远程数据库的实例名。如果无法解析,可以在EXEC sp_addlinkedserver Instance02’中把Instance02换为IP,或者在hosts文件中,自己建立相应DNS映射。

 

下面列举几个跨实例数据库访问的存储过程和视图。

 

存储过程名/视图名 作用 举例

sp_addlinkedserver 注册远程数据库实例 exec sp_addlinkedserver InstanceName

sp_dropserver 删除远程数据库实例 exec sp_dropserver InstanceName

sp_addlinkedsrvlogin 注册远程实例登陆访问帐户 exec sp_addlinkedsrvlogin InstanceName, null

sp_droplinkedsrvlogin 删除远程实例登陆访问帐户 EXEC sp_droplinkedsrvlogin 'InstanceName','UserName'

sp_helpserver 当前实例已注册的可访问的实例(即查看使用sp_addlinkedserver已注册过的实例) sp_helpserver

sys.sysservers 功能同sp_helpserver select * from sys.sysservers

sys.linked_logins 查看已注册的登陆访问帐户(即查看使用sp_addlinkedsrvlogin已注册过的帐户) select * from sys.linked_logins

sys.remote_logins 查看已注册的远端访问帐户 select * from sys.remote_logins

 

 

 

Exec sp_droplinkedsrvlogin ZYB,Null --删除映射(录与链接服务器上远程登录之间的映射)

Exec sp_dropserver ZYB --删除远程服务器链接

 

EXEC sp_addlinkedserver

@server='ZYB',--被访问的服务器别名

@srvproduct='',

@provider='SQLOLEDB',

@datasrc="/Server2" --要访问的服务器

 

 

EXEC sp_addlinkedsrvlogin

'ZYB', --被访问的服务器别名

'false',

NULL,

'sa', --帐号

'sa' --密码

 

使用实例:

Select * from ZYB.CDCenter20110822.dbo.cardbase  

【实例截图】
【核心代码】

标签: SQLServer Server sql rve LS

实例下载地址

SQLServer 多库查询

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警