我想在MS SQL Server 2000中創建鏈接服務器到運行在端口x(不是默認端口1433)上的MS SQL 2005服務器。但它不起作用,因爲我無法在任何地方指定端口!?如何使用非默認端口創建鏈接服務器
使用sqlcmd(指定端口x),我可以毫無問題地連接到服務器 - 但我無法將其設置爲鏈接服務器。
這怎麼辦?
我想在MS SQL Server 2000中創建鏈接服務器到運行在端口x(不是默認端口1433)上的MS SQL 2005服務器。但它不起作用,因爲我無法在任何地方指定端口!?如何使用非默認端口創建鏈接服務器
使用sqlcmd(指定端口x),我可以毫無問題地連接到服務器 - 但我無法將其設置爲鏈接服務器。
這怎麼辦?
在新的鏈接服務器對話框中,選擇「其他數據源」,選擇「Microsoft OLE DB提供程序SQL Server」作爲您的供應商的名稱,然後用這個作爲你的供應商字符串:
Data Source=192.168.1.100,1433;Network Library=DBMSSOCN;Initial Catalog=yourdbname;User ID=username;Password=password;
更換IP和「1433」與您的IP和端口號。在連接字符串
另一種方式來實現這一目標(假設你已經在SQL Server中建立8080)是用下面的代碼:
EXEC sp_addlinkedserver 'myserver', '', 'SQLNCLI', 'xx.xx.xx.xx,8080'
EXEC sp_addlinkedsrvlogin 'myserver', 'FALSE', NULL, 'user', 'pwd'
基於巴蒂爾的建議,添加一個別名爲我工作。
(SQL Server 2008 R2中):
(重複「SQL本機客戶端10.0配置」(減去了「32位」文本)中的步驟)
添加一個別名,這種方式讓我添加鏈接的服務器與服務器類型爲「SQL服務器」,而無需配置提供期權等
注意4部分查詢將類似於此:
SELECT * FROM [SQLSERVER,14333].[DATABASE].[dbo].[Table1]
我不得不這樣做今天以及(添加鏈接的服務器使用非默認港口)。就我而言,它是將SQL Server 2014鏈接服務器添加到SQL Server 2016。
步驟,使用SQL Server Management Studio中:
使用這種格式的鏈接服務器 ip-address-of-linked-server\instance-name,non-default-port
或192.168.10.5\dev-sql,25250
。僅當實例不是目標鏈接服務器上的默認實例時才需要實例名稱。此外,如果鏈接的服務器位於本地網絡上,則可以通過主機名替換IP地址。對於服務器類型
選擇SQL Server添加使用的安全選項卡
使用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'
這將工作!你知道是否有一種方法可以使用SQLNCLI提供程序進行這項工作? – mjv 2009-09-18 15:51:43
我沒有嘗試過自己,但你可以嘗試使用「SQL Server配置管理器」創建一個別名,在那裏定義IP和端口號。然後在你的SQLNCLI連接字符串中使用該別名。缺點是每個客戶端機器都需要這樣做。如果它只是兩個鏈接的服務器,它應該可以工作。 – 2009-09-18 16:06:54