SQL 存储过程连接远程服务器数据库的方法

一、建立链接sql server服务器,通常有两种情况:

 第一种情况,产品选”sql server”

EXEC sp_addlinkedserver

   @server='linkServerName',

   @srvproduct = N'SQL Server'

这种情况,@server linkServerName)就是要链接的sqlserver服务器名或者ip地址。

       第二种情况,访问接口选“Microsoft OLE DB Provider Sql Server”“Sql Native Client”

EXEC sp_addlinkedserver  

   @server=' linkServerName ',

   @srvproduct='',

   @provider='SQLNCLI',

   @datasrc='sqlServerName'

这种情况,@datasrcsqlServerName)就是要链接的实际sqlserver服务器名或者ip地址。

A  数据库引擎

第一种情况的@server或者第二种情况的@datasrc设置为ip地址时,数据库引擎会根据ip地址访问链接服务器,这时不需要做名称解析。

第一种情况的@server或者第二种情况的@datasrc设置为sql server服务器名时,需要做名称解析,就是把服务器名解析为ip地址。

有两个办法解析服务器名:

一是在sql server客户端配置中设置一个别名,将上面的服务器名对应到链接服务器的ip地址。

二是在“C:/WINDOWS/system32/drivers/etc/hosts”文件中增加一条记录:

xxx.xxx.xxx.xxx  服务器名

作用同样是把服务器名对应到链接服务器的ip地址。

BDTC

不管哪一种情况,只要@server设置的是服务器名而不是ip地址,就需要进行名称解析,办法同上面第二种办法,在hosts文件中增加解析记录,上面的第一种办法对DTC不起作用。

如果@server设置的是ip地址,同样不需要做域名解析工作。

二、远程服务器上的名称解析

分布式事务的参与服务器是需要相互访问的,发起查询的服务器要根据机器名或ip查找远程服务器的,同样远程服务器也要查找发起服务器,远程服务器通过发起服务器的机器名查找服务器,所以要保证远程服务器能够通过发起服务器的机器名访问到发起服务器。

一般的,两个服务器在同一网段机器名能就行很好的解析,但是也不保证都能很好的解析,所以比较保险的做法是:

在远程服务器的在“C:/WINDOWS/system32/drivers/etc/hosts”文件中增加一条记录:

xxx.xxx.xxx.xxx  发起服务器名

根据提供的引用内容,可以得出以下结论: 引用\[1\]中提到了一些与远程连接服务器相关的SQL Server存储过程,包括删除映射、删除远程服务器链接和添加链接服务器等操作。这些存储过程可以用于管理远程连接。 引用\[2\]中提到了在程序中远程连接数据库时,使用本机名称是不合理的,应该使用IP地址加登录名/密码进行连接。 引用\[3\]中提到了两种远程连接数据库的方式,一种是通过局域网连接,另一种是通过设置端口和IP地址进行连接。 根据你的问题,如果你在使用sqllog远程连接服务器数据库时遇到了失败的情况,可能有以下几个原因: 1. 请确保你使用的是正确的服务器名称或IP地址。你可以通过查看现有的SQL Server实例可供连接用的IP和对应的Port来确认。 2. 请确保你的登录名和密码是正确的,并且具有足够的权限来访问远程服务器上的数据库。 3. 请确保你的网络连接是正常的,可以尝试通过命令行程序输入ipconfig查找内网IP进行连接。 如果你仍然无法解决问题,议你参考相关的文档或博客,或者咨询数据库管理员或技术支持人员以获取进一步的帮助。 #### 引用[.reference_title] - *1* [解决SQLServer远程连接失败的问题](https://blog.csdn.net/weixin_29967003/article/details/119269316)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [远程连接SQL Server数据库(基于Sequelize / Navicat)](https://blog.csdn.net/SCY164759920/article/details/127627707)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [使用内网穿透远程连接数据库](https://blog.csdn.net/Violetttte/article/details/127359161)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值