2013-01-11 115 views
1

我需要查詢鏈接服務器上的數據庫,但不幸數據庫名稱包含句點。在鏈接的SQL Server上使用名稱查詢數據庫

失敗;

select top 10 * 
FROM [LINKED_SERVER].[DATABASE_NAME.1].dbo.[TABLE_NAME] 

與此錯誤:

OLE DB error trace [Non-interface error: OLE DB provider unable to process object, since the object has no columnsProviderName='SQLOLEDB', Query="DATABASE_NAME.1"."dbo"."TABLE_NAME"'].
Msg 7357, Level 16, State 2, Line 2
Could not process object '"DATABASE_NAME.1"."dbo"."TABLE_NAME"'. The OLE DB provider 'SQLOLEDB' indicates that the object has no columns.

連接到相同的鏈接服務器,而不在數據庫名期的作品;

select top 10 * 
FROM [LINKED_SERVER].[DATABASE_NAME].dbo.[TABLE_NAME] 

由於有現有的數據庫名稱多次提到了我的控制,我希望找到避免永久重新命名數據庫的解決方案。

我希望能夠創建一個同義詞或別的別名,或找到一些其他的方式來得到這個工作。

回答

0

通過鏈接服務器訪問的數據庫名稱中的句點在用括號[]轉義時是完全可以接受的 - 您獲取的錯誤必須是別的。

我可以在我的試驗檯證實了這一點:

http://www.heavencore.co.uk/filehub/uploaded/LinkedServerWithPeriod.jpg

一個想法,使用舊SQLOLEDB提供商爲你的鏈接服務器你,你嘗試過使用SQLNCLI10呢?在標識符

-1

避免週期,

例如在SSMS

sp_help [sales.order] 

將無法​​正常工作,甚至括號

相關問題