### 如何链接外部服务器数据库 在企业级应用中,经常需要跨系统进行数据交互与整合。这涉及到将本地数据库与外部服务器上的数据库进行链接。本文将详细介绍如何在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币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 适用于 Python 的 LINE 消息 API SDK.zip
- 适用于 Python 的 AWS 开发工具包.zip
- 适用于 Python 3 的 Django LDAP 用户身份验证后端 .zip
- 基于PBL-CDIO的材料成型及控制工程课程设计实践与改革
- JQuerymobilea4中文手册CHM版最新版本
- 适用于 Python 2 和 3 以及 PyPy (ws4py 0.5.1) 的 WebSocket 客户端和服务器库.zip
- 适用于 AWS 的 Python 无服务器微框架.zip
- 适用于 Apache Cassandra 的 DataStax Python 驱动程序.zip
- WebAPI-案例-年会抽奖.html
- 这里有一些基础问题和一些棘手问题的解答 还有hackerrank,hackerearth,codechef问题的解答 .zip