解決SQL Service創建鏈接服務器出現(null) 是無效的產品名稱的問題

在使用SQL Service 2005/2008 創建鏈接服務器時,有出現過:"消息 15429,級別 16,狀態 1,過程 sp_addlinkedserver,第 42 行'(null)' 是無效的產品名稱。"的問題,從該錯誤提示上來看,主要是創建鏈接服務器的時候沒有輸入產品名稱的原因。根據不同的創建方式以下分爲兩種解法方法,解決方法如下:

 

情況一:使用SQL語句創建鏈接服務器出現此問題

這是原來添加鏈接服務器SQL語句的第一句:

EXEC master.dbo.sp_addlinkedserver @server = N'My_LinkService', @provider=N'SQLNCLI', @datasrc=N'192.168.1.1'

我們可以看到一共傳入了 server(鏈接服務器名稱),provider(訪問接口),datasrc(數據源)這三個參數和值。

由於錯誤提示我們的是null是無效的產品名稱,所以我們必須要傳入產品名稱,參數名爲srvproduct,值的話隨便填一個好記的就可以了。最終這句SQL代碼如下:

EXEC master.dbo.sp_addlinkedserver @server = N'My_LinkService', @provider=N'SQLNCLI', @datasrc=N'192.168.1.1',@srvproduct=N'mypro'

這裏是完整的創建語句,僅作參考,具體參數根據自己數據庫和需求更改:

/****** 對象:  LinkedServer [My_LinkService]    腳本日期: 07/14/2014 10:34:38 ******/
EXEC master.dbo.sp_addlinkedserver @server = N'My_LinkService', @provider=N'SQLNCLI', @datasrc=N'192.168.1.1',@srvproduct=N'mypro'
 /* For security reasons the linked server remote logins password is changed with ######## */
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'My_LinkService',@useself=N'False',@locallogin=NULL,@rmtuser=N'sa',@rmtpassword='123456'

GO
EXEC master.dbo.sp_serveroption @server=N'My_LinkService', @optname=N'collation compatible', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'My_LinkService', @optname=N'data access', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'My_LinkService', @optname=N'dist', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'My_LinkService', @optname=N'pub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'My_LinkService', @optname=N'rpc', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'My_LinkService', @optname=N'rpc out', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'My_LinkService', @optname=N'sub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'My_LinkService', @optname=N'connect timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'My_LinkService', @optname=N'collation name', @optvalue=null
GO
EXEC master.dbo.sp_serveroption @server=N'My_LinkService', @optname=N'lazy schema validation', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'My_LinkService', @optname=N'query timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'My_LinkService', @optname=N'use remote collation', @optvalue=N'true'

 

情況二:使用SQL Service可視化界面新建鏈接服務器出現此問題

如果是使用可視化視圖界面進行鏈接服務器添加的話,只要在添加界面輸入產品名稱即可。如下圖:


作者:十有三

出處:https://shiyousan.com/post/635408773769286544

版權聲明:本文采用知識共享許可協議:署名-相同方式共享 4.0 國際(CC BY-SA 4.0)。歡迎轉載本文,轉載請聲明出處或保留此段聲明。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章