如何使用非默认端口创建链接服务器

时间:2009-09-18 15:02:31

标签: sql sql-server tsql

我想在MS SQL Server 2000中创建一个链接服务器到MS SQL 2005 Server,该服务器在端口x上运行(不是默认端口1433)。但它不起作用,因为我无法在任何地方指定端口!?

使用sqlcmd(指定端口x),我可以毫无问题地连接到服务器 - 但我无法将其设置为链接服务器。

如何做到这一点?

5 个答案:

答案 0 :(得分:9)

实现此目的的另一种方法(假设您已在SQL Server中设置了8080)使用以下代码:

EXEC sp_addlinkedserver 'myserver', '', 'SQLNCLI', 'xx.xx.xx.xx,8080'

EXEC sp_addlinkedsrvlogin 'myserver', 'FALSE', NULL, 'user', 'pwd'

答案 1 :(得分:7)

在新的链接服务器对话框中,选择“其他数据源”,选择“Microsoft OLE DB Provider for SQL Server”作为提供者名称,然后将其用作提供者字符串:

Data Source=192.168.1.100,1433;Network Library=DBMSSOCN;Initial Catalog=yourdbname;User ID=username;Password=password;

用您的IP和端口号替换IP和“1433”。

有关连接字符串的更多信息:http://support.microsoft.com/kb/238949

答案 2 :(得分:7)

根据Shane的建议,添加别名对我有用。

(SQL Server 2008 R2):

  • 打开SQL Server配置管理器
  • 展开“SQL Server配置管理器(本地)”
  • 展开“SQL Native Client 10.0配置(32位)”
  • 点击“别名”
  • 右键单击右侧别名列表,然后选择“新建别名”
  • “Alias Name”是您想要引用链接服务器的任何内容。
  • “Port No”是您的非默认端口。
  • “协议”取决于,但您很可能将其留作“TCP / IP”。
  • “服务器”是您尝试连接的服务器的地址(不包括端口)。

(重复“SQL Native Client 10.0配置”(减去“32位”文本))

的步骤

以这种方式添加别名允许我添加服务器类型为“SQL Server”的链接服务器,而无需配置提供程序选项等。

答案 3 :(得分:0)

请注意,4部分查询与此类似:

  SELECT * FROM [SQLSERVER,14333].[DATABASE].[dbo].[Table1]

答案 4 :(得分:0)

我今天也必须这样做(添加一个非默认端口的链接服务器)。在我的例子中,它是将SQL Server 2014链接服务器添加到SQL Server 2016。

使用SQL Server Management Studio的步骤:

  1. 打开SSMS并转到服务器对象>链接服务器>新链接服务器
  2. 将此格式用于链接服务器 ip-address-of-linked-server\instance-name,non-default-port192.168.10.5\dev-sql,25250。仅当该实例不是目标链接服务器上的默认实例时,才需要实例名称。此外,如果链接服务器位于本地网络上,您可以按主机名替换IP地址。

  3. 为服务器类型选择SQL Server

  4. 使用“安全”标签
  5. 添加连接所需的所有凭据
  6. 使用与指定above的SQLDBA一样的格式查询新服务器。
  7. example screenshot

    使用T-SQL也一样:

    EXEC master.dbo.sp_addlinkedserver @server = N'192.168.10.5\dev-sql,25250', @srvproduct=N'SQL Server'

    EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'192.168.10.5\dev-sql,25250',@useself=N'False',@locallogin=NULL,@rmtuser=N'my_username',@rmtpassword='my_pswd'