1

我正在嘗試從2005到2008 Microsoft SQL Server創建鏈接服務器。我經常爲2005的實例做這個,但這是我進入SQL 2008的漫長旅程的第一步。我能夠像其他鏈接服務器一樣創建鏈接服務器,但是我沒有收到任何錯誤,但是每次嘗試使用鏈接服務器用於任何事情(例如,簡單的「SELECT *」語句)我在SSMS中出現此錯誤:2005年實例中鏈接的2008 SQL服務器的「轉換規範的字符值無效」

「鏈接服務器{鏈接的服務器名稱}的OLE DB提供程序」SQLNCLI「返回的消息」 「」

在2005實例中創建鏈接服務器到2008實例需要了解什麼?

+1

當你說「使用鏈接服務器」時,你究竟做了什麼,導致出現錯誤,即是否執行特定的T-SQL批處理或存儲過程?該錯誤似乎表明投射操作失敗。 – 2009-06-12 21:40:50

+0

我沒有在任何命令中進行任何投射。我正在談論執行一些簡單的事情,如'SELECT * FROM linkedServer.database.dbo.table'返回該OLE DB錯誤。 – kscott 2009-06-12 21:58:47

+0

在這種情況下,您可以提供鏈接服務器定義。 – 2009-06-15 15:34:19

回答

2

原來我一直選擇測試,2008年的服務器上的最重要的業務表,每有「地理」的數據類型,這是一個新的2008年。當在其他表的一個測試查詢字段的表沒有這種數據類型查詢工作正常。

所以......你知道......這是......一個「無效的鑄造規格字符值」。

0

我懷疑這可能是整理問題。

檢查服務器,數據庫和表級別的排序規則是否相同。

要檢查detault服務器排序規則運行下面的T-SQL:

exec sp_helpsort 

要檢查Databasea整理請執行以下操作:

SELECT DATABASEPROPERTYEX('DatabaseName', 'Collation') SQLCollation; 
0

它要麼覈對(我第一次的猜測),或Unicode轉換(VARCHAR vs NVARCHAR)。我喜歡約翰,但我沒有足夠的聲望。

0

在那裏,你能夠查詢該有地理學領域的鏈接服務器上的表,並沒有得到該錯誤的特定方式?

我有同樣的問題,我需要查詢鏈接的服務器和一些表中有他們的地理領域,即使我只選擇一個文本字段,我得到的錯誤。我能想到的唯一解決方法是將地理區域拆分爲新表格,以便對錶格的查詢不會中斷。