2009-06-10 22 views
0

我通常不使用鏈接服務器,所以我不確定我在這裏做錯了什麼。T-SQL 2000:四部分表名

這樣的查詢將努力鏈接FoxPro服務器從SQL 2000:

EXEC('Select * from openquery(linkedServer, ''select * from linkedTable'')') 

不過,從互聯網上的研究,這樣的事情也應該工作:

Select * from linkedserver...linkedtable 

,但我收到此錯誤:

Server: Msg 7313, Level 16, State 1, Line 1 
Invalid schema or catalog specified for provider 'MSDASQL'. 
OLE DB error trace [Non-interface error: Invalid schema or catalog specified for the provider.]. 

我意識到它應該是ServerAlia s.Category.Schema.TableName,但是如果我在鏈接服務器上運行sp_ tables _ex,對於所有表的類別,我只是將網絡路徑指向數據文件所在的位置,並且架構爲空。

此服務器安裝不正確嗎?或者是我試圖做不到的事情?

回答

1

MSDN

Always use fully qualified names when working with objects on linked servers. There is no support for implicit resolution to the dbo owner name for tables in linked servers

您不能依賴於鏈接服務器的'..'表示法的隱式模式名稱解析。對於FoxPro「服務器」,您將不得不使用數據庫和架構,因爲它們映射到您使用的驅動程序中的FoxPro對應項(我認爲它們映射到文件夾和文件名,但我不使用ISAM文件驅動程序已有10多年了)。

0

我認爲你需要明確有關查詢的鏈接服務器的一部分資源,比如:

EXEC SomeLinkedServer.Database.dbo.SomeStoredProc 

換句話說只是點綴出來在這種情況下不工作,你必須更加詳細一些。

0

它實際上是:

ServerAlias.Catalog.Schema.LinkedTable

目錄是,你的鏈接服務器上查詢數據庫和目錄是遠程表的類別。因此,一個有效的四部分名稱會看上去像個這個

ServerAlias.AdventureWorks.HumanResources.Employee

ServerAlias.MyDB.dbo.MyTable

+0

有沒有一種方法可以確定這兩個中間件是什麼? sp_linkedservers將'SRV_CAT'顯示爲空,並且sp_tables_ex將'TABLE_SCHEM'也爲NULL – John 2009-06-10 13:55:58