2017-05-23 43 views
1

我想用它來創建一個Link Server鏈接服務器錯誤使用無效的架構或目錄的OLE DB提供程序「SQLNCLI10」鏈接服務器「LINK71」

EXEC master.dbo.sp_addlinkedserver @server = N'LINK71', @srvproduct=N'serverInstance', @provider=N'SQLNCLI', @datasrc=N'serverInstance', @catalog=N'mydb' 

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'LINK71',@useself=N'False',@locallogin=NULL,@rmtuser=N'myuname',@rmtpassword='mypassword' 

GO 

它成功創建,但我的問題是它會返回像上面的錯誤,當我開始運行鏈接服務器時:

SELECT top 1 [Col1] 
     ,[Col2] 
     ,[Col3] 
    FROM [LINK71].[DB].[dbo].[Tbl_sample] 
GO 

我錯過了什麼?

Iv'e也試圖搜索一些帖子,但沒有運氣。

下面是一些額外的細節:

這是從鏈接服務器中的圖像是表沒有從右側區域欄:

enter image description here

這是從一個正常的服務器圖像選項從右側的區域添加符號展開,但鏈接服務器沒有任何內容:

enter image description here

任何建議將不勝感激。

謝謝。

回答

1

從BOL:sp_addlinkedserver (Transact-SQL)

[@目錄=] '目錄' 是當連接是 到OLE DB提供用來被使用的目錄。目錄是sysname,默認爲 NULL。目錄作爲DBPROP_INIT_CATALOG屬性傳遞到 初始化OLE DB提供程序。當針對SQL Server實例定義鏈接服務器 時,目錄引用鏈接服務器映射到的默認 數據庫。

所以,或者定義鏈接服務器 (這樣做,你可以參考稍後從鏈接服務器的任何數據庫),您不使用@catalog在所有的,然後你可以用你的語法像

[LINK71].[DB].[dbo].[Tbl_sample] 

或者你在鏈接的服務器定義中使用@catalog,但是你不能使用其他不是mydb的數據庫(從你的@ catalog = N'mydb')

+0

我的意思是如果你想引用DB數據庫你的鏈接服務器,你不應該在鏈接的服務器定義中使用@ catalog = N'mydb',只使用EXEC master.dbo.sp_addlinked server @ server = N'LINK71',@ srvproduct = N'serverInstance',@ provider = N'SQLNCLI',@ datasrc = N'serverInstance'沒有參數@ catalog – sepupic

+0

問題是,我可以看到鏈接中的所有表服務器,但沒有創建列,也沒有任何選項來擴展表格。只是查看錶格名稱。 – redzsol

+0

如果您使用目錄參數,則當您引用鏈接服務器時,如果您使用目錄參數 – sepupic

相關問題