SQLServer2008新实例远程数据库链接问题(sp_addlinkedserver)

作者:mrr 时间:2024-01-19 23:44:22 

先说说问题起因:

测试同学在自己电脑上测试不同的后台,但数据库使用的是相同的名称。

于是创建了新的SQL Server实例,而新实例需要指定不同端口才能启动,改端口后执行sp_addlinkedserver语句后,连接测试不成功。

执行的SQL语句如下:


EXEC master.dbo.sp_addlinkedserver @server = N'UserDBLink', @srvproduct=N'UserDBLink', @provider=N'SQLNCLI', @datasrc=N'(LOCAL)', @catalog=N'UsersDB'
/* For security reasons the linked server remote logins password is changed with ######## */
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'UserDBLink',@useself=N'True',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL

先说下问题的解决方案,需要在@datasrc字串中加入端口号,如下:


@datasrc=N'(LOCAL)'修改为@datasrc=N'(LOCAL),端口号'

很简单吧!但,但,但确查了好久,最后还是想到程序中连接字符串用法,才解决了该问题。
程序中链接串是这样的


Provider=SQLOLEDB.1;Password=11;Persist Security Info=True;User ID=sa;Initial Catalog=db;Data Source=127.0.0.1,1433;

在查找问题过程中,查了MSDN文档,居然没有写新端口的写法,难怪该妹妹折腾了好久!,大家帮我看看,难道我错怪MSDN了嘛!!!

这是链接:https://msdn.microsoft.com/zh-cn/library/ms190479.aspx

这是我复制的MSDN描述


sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ]  
  [ , [ @provider= ] 'provider_name' ]
  [ , [ @datasrc= ] 'data_source' ]  
  [ , [ @location= ] 'location' ]  
  [ , [ @provstr= ] 'provider_string' ]  
  [ , [ @catalog= ] 'catalog' ]

参数:


[ @server= ] 'server'

要创建的链接服务器的名称。 server 的数据类型为 sysname,无默认值。 


[ @srvproduct= ] 'product_name'

要添加为链接服务器的 OLE DB 数据源的产品名称。 库是nvarchar (128),默认值为 NULL。 如果SQL Server, provider_name, data_source,位置, provider_string,和目录无需指定。


[ @provider= ] 'provider_name'

与此数据源对应的 OLE DB 访问接口的唯一编程标识符 (PROGID)。 provider_name必须是唯一的当前计算机上安装指定的 OLE DB 提供程序。 provider_name是nvarchar (128),默认值为 NULL; 但是,如果provider_name是省略,则使用 SQLNCLI。 (使用 SQLNCLI 并且 SQL Server 将重定向到 SQL Server Native Client OLE DB 访问接口的最新版本。)OLE DB 访问接口应以指定的 PROGID 在注册表中注册。 


[ @datasrc= ] 'data_source'

由 OLE DB 访问接口解释的数据源的名称。 data_source是nvarchar (4000)。 data_source作为要初始化的 OLE DB 访问接口的 DBPROP_INIT_DATASOURCE 属性传递。


[ @location= ] 'location'

由 OLE DB 访问接口解释的数据库的位置。 位置是nvarchar (4000),默认值为 NULL。 位置作为要初始化的 OLE DB 访问接口的 DBPROP_INIT_LOCATION 属性传递。 


[ @provstr= ] 'provider_string'

OLE DB 访问接口特定的连接字符串,它可标识唯一的数据源。 provider_string是nvarchar (4000),默认值为 NULL。 provstr传递给 IDataInitialize,或者设置为 DBPROP_INIT_PROVIDERSTRING 属性来初始化 OLE DB 访问接口。
针对创建链接的服务器时SQL ServerNative Client OLE DB 提供程序,可以使用服务器 SERVER 关键字指定实例 =servername\instancename指定的特定实例SQL Server。 servername是在其上的计算机的名称SQL Server正在运行,和instancename是的特定实例的名称SQL Server用户将连接到。 


[ @catalog= ] 'catalog'

与 OLE DB 访问接口建立连接时所使用的目录。 目录是sysname,默认值为 NULL。 目录作为要初始化的 OLE DB 访问接口的 DBPROP_INIT_CATALOG 属性传递。 在针对 SQL Server 实例定义链接服务器时,目录指向链接服务器映射到的默认数据库。

以上所述是小编给大家介绍的SQLServer2008新实例远程数据库链接问题(sp_addlinkedserver),希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

来源:http://www.2cto.com/database/201705/639710.html

标签:sqlserver2008,远程,数据库,sp,addlinkedserver
0
投稿

猜你喜欢

  • 基于python(urlparse)模板的使用方法总结

    2022-10-08 19:56:50
  • 举例详解JavaScript中Promise的使用

    2024-06-05 09:58:07
  • 纯ASP(VBscript)写的全球IP地址搜索程序

    2007-09-27 13:28:00
  • python练习之循环控制语句 break 与 continue

    2022-04-15 12:31:20
  • python判断无向图环是否存在的示例

    2022-07-05 18:39:55
  • 带你深入了解MySQL数据库系统参数的优化

    2009-03-06 17:58:00
  • python中pyplot直方图的绘制方式

    2023-11-20 07:58:17
  • Python中os和shutil模块实用方法集锦

    2021-04-19 08:45:12
  • 教你怎么用Python处理excel实现自动化办公

    2023-11-05 02:19:50
  • MySQL回表的性能伤害程度有多大

    2024-01-29 10:55:55
  • Python实现批量绘制遥感影像数据的直方图

    2023-09-04 10:35:53
  • Pytorch to(device)用法

    2022-05-04 22:57:19
  • 使用Python给头像戴上圣诞帽的图像操作过程解析

    2023-03-17 13:22:01
  • 使用TensorFlow搭建一个全连接神经网络教程

    2023-01-10 10:59:20
  • 利用SQLyogEnt对Mysql数据库进行转移

    2012-02-25 20:17:30
  • 用PHP实现标准的IP Whois查询

    2023-11-14 19:35:01
  • Django中如何用xlwt生成表格的方法步骤

    2023-07-17 07:47:12
  • 如何利用PyQt5制作一个简单的登录界面

    2023-11-18 20:36:31
  • Go语言中如何确保Cookie数据的安全传输

    2024-05-22 10:21:43
  • 纯JS实现五子棋游戏兼容各浏览器(附源码)

    2024-04-25 13:14:53
  • asp之家 网络编程 m.aspxhome.com