### 如何链接外部服务器数据库 在企业级应用中,经常需要跨系统进行数据交互与整合。这涉及到将本地数据库与外部服务器上的数据库进行链接。本文将详细介绍如何在SQL Server环境中设置与外部数据库服务器的链接。 #### 基础概念 在进行数据库链接之前,我们首先需要了解一些基础概念: - **Linked Server(链接服务器)**:它是一种在SQL Server中实现跨服务器查询的方法。通过定义一个链接服务器,可以将一个远程数据库服务器当作本地服务器的一个数据库来访问。 - **Provider(提供者)**:链接服务器使用的提供者决定了如何与远程服务器通信。例如,`SQLOLEDB`用于连接到另一个SQL Server实例。 - **Login(登录)**:为了能够访问远程服务器,必须为链接服务器创建一个登录,该登录包含远程服务器的用户名和密码。 #### 设置步骤 下面是一系列具体的步骤和命令,用于设置与外部数据库服务器的链接。 1. **创建链接服务器**:使用`sp_addlinkedserver`存储过程创建链接服务器。例如,要链接到IP地址为`192.168.18.33`的服务器,可以使用以下命令: ```sql EXEC sp_addlinkedserver @server = N'lnksvr', --链接服务器名称 @srvproduct=N'', --远程服务器产品类型,如果为空,则使用默认值 @provider=N'sqloledb', --提供者名称 @datasrc=N'192.168.18.33'; --远程服务器地址 ``` 2. **添加登录信息**:接下来,需要为链接服务器创建登录信息,以便能够访问远程服务器。这通常包括用户名和密码等认证信息。 ```sql EXEC sp_addlinkedsrvlogin @rmtsrvname=N'lnksvr', --链接服务器名称 @useself=N'false', --是否使用当前登录信息,默认为false @locallogin=NULL, --本地登录名,如果为NULL则使用当前登录 @rmtuser=N'sa', --远程服务器用户名 @rmtpassword=N''; --远程服务器密码 ``` 3. **执行查询**:一旦链接服务器设置完成,就可以像访问本地数据库一样查询远程数据库中的数据了。例如,要查询名为`tbname`的表,可以使用如下命令: ```sql SELECT * FROM [lnksvr].[db_name].[dbo].[tbname]; ``` #### 进阶设置 对于更复杂的需求,可能还需要进行一些额外的配置。 - **分布式事务协调**:当涉及到多个服务器之间的事务时,可能需要使用MSDTC(Microsoft Distributed Transaction Coordinator)进行协调。可以通过以下步骤启用DTC支持: 1. **启动MSDTC服务**:确保MSDTC服务已启动。 2. **设置安全性和权限**:确保“NT Authority\Network Service”账户具有正确的权限。 3. **配置DTC**:在链接服务器的高级选项中启用DTC支持。 - **多层链接**:在某些情况下,可能需要在两个不同的SQL Server之间建立链接。例如,在服务器A上创建一个链接服务器指向服务器B。可以使用以下命令: ```sql USE master; GO EXEC sp_addlinkedserver @server=N'AtoB', --链接服务器名称 @srvproduct=N'', --远程服务器产品类型,如果为空,则使用默认值 @provider=N'SQLOLEDB', --提供者名称 @datasrc=N'192.168.1.244'; --远程服务器地址 GO EXEC sp_addlinkedsrvlogin @rmtsrvname=N'AtoB', --链接服务器名称 @useself=N'false', --是否使用当前登录信息,默认为false @locallogin=NULL, --本地登录名,如果为NULL则使用当前登录 @rmtuser=N'sa', --远程服务器用户名 @rmtpassword=N'123456'; --远程服务器密码 GO ``` #### 总结 通过以上步骤,可以在SQL Server环境中成功地链接到外部数据库服务器,并实现数据的跨服务器查询。这对于构建复杂的分布式应用程序非常重要。当然,实际操作中还需要根据具体情况进行调整,比如处理网络问题、权限问题等。希望这些信息能帮助您更好地理解和掌握链接外部服务器数据库的相关知识和技术。
形如:select * from [b数据库].[dbo].[tbname]
如果是异地数据库,则先要建立连接服务器:
举列如下:
sp_addlinkedserver 'lnksvr ', ' ', 'sqloledb ', '192.168.18.33 '
exec sp_addlinkedsrvlogin 'lnksvr ',false,null, 'sa ', '密码 '
--test
select * from [lnksvr].[数据库名].[所有者].[表名]
打开“管理工具”的“组件服务”。
a. 浏览至"启动管理工具"。
b. 选择"组件服务"。
c. 展开"组件服务"树,然后展开"我的电脑"。
d. 右键单击"我的电脑",然后选择"属性"。
在 MSDTC 选项卡中,确保选中了下列选项:
网络 DTC 访问
网络管理
网络事务
XA 事务
另外,"DTC 登录帐户"一定要设置为"NT Authority\NetworkService"。
重启MS DTC服务。
有两台计算机 A 和 B
在A计算机上面 使用语句:
exec sp_addlinkedserver 'AtoB ', ' ', 'SQLOLEDB ', '192.168.1.244'
exec sp_addlinkedsrvlogin 'AtoB ', 'false ',null, 'sa', '123456'
- 粉丝: 18
- 资源: 17
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 高分辨率图像合成的Bitwise自动回归建模研究及其应用Infinity
- A星融合DWA的路径规划算法,可实现静态避障碍及动态避障,代码注释详细,matlab源码
- 数学推理过程中错误识别的基准测试:PROCESSBENCH介绍
- STM32+AHT10+MCP4725+0.96OLED组装的模拟量湿度传感器用于示波器记录湿度变化
- labview通用视觉软件框架,机器视觉通用框架 通用视觉框架源代码 可以参考用于开发常规案例 提供,可用于学习交流 里面有部分函数,用户也可随意编辑函数 LV2018 -64位版本
- 自动化工程-机械臂建模与仿真的期末考试题目-Dobot机械臂
- TLF35584、auto
- 山东省高校机器人大赛一等奖作品-智能避障避险小车项目源码.zip
- 构建透明税务:税务门户网站系统开发指南
- 基于opencv答题卡识别判卷(完整代码python)
- KPCA matlab代码,可分train和test 注释清晰
- 地理信息系统:天地图API调用实例及其应用
- K波段大规模有源相控阵天线模块化架构特性与校准挑战
- 高效率音频放大器TFA9874B产品说明书
- 单级传动零件设计与计算方法-机械设计课程指导
- YOLOv10算法方盒型快递包裹检测模型+数据集