在使用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)。歡迎轉載本文,轉載請聲明出處或保留此段聲明。