簡體   English   中英

鏈接服務器的OLE DB提供程序為列提供了不一致的元數據

[英]The OLE DB provider for linked server supplied inconsistent metadata for a column

我得到的錯誤是:

The column "EngDescAlt" (compile-time ordinal 2) of object "select * from MstBusiness" was reported to have a "DBCOLUMNFLAGS_ISLONG" of 128 at compile time and 0 at run time.

我在幾個表中的各個列中得到相同的錯誤,每次唯一的區別是列名和表名,我無法弄清楚如何修復它。 有任何想法嗎?

就像使用OpenQuery的方式不起作用,因為這是我已經使用的。

任何幫助表示贊賞。

SELECT     Z_ID AS BusinessID, EngDescAlt AS Description
FROM         OPENQUERY(<LinkedServer>, 'select * from <Tablename>') AS U2_<Tablename>

由於某種原因,在服務器上重新啟動MS SQL SERVICES修復了問題。 它似乎與修復的問題有關,需要重新啟動才能實現。 對不起,我不能更具體地解決問題的原因。

我剛注意到你編輯了你的問題,發布了你的查詢。
調試的一個好方法是測試朝向目標的小步驟......這樣您就可以確切地看到哪個步驟引入了錯誤。

首先,您可以直接連接到目標服務器,在沒有OPENQUERY的情況下測試您的查詢嗎?
如果是這樣,那么嘗試從SSMS(SQL Server Management Studio)中進行簡單選擇:

SELECT Z_ID AS BusinessID, EngDescAlt AS Description  
FROM <Tablename>

如果有效,請嘗試:

SELECT Z_ID AS BusinessID, EngDescAlt AS Description 
FROM (select * from <Tablename>) AS U2_<Tablename>

並嘗試在SSMS中運行openquery,在一個直接連接到該目標服務器(而不是鏈接服務器)的查詢窗口中:

SELECT Z_ID AS BusinessID, EngDescAlt AS Description
FROM OPENQUERY(<LinkedServer>, 'select * from <Tablename>') AS U2_<Tablename>

最后,一個問題:您在哪個環境中運行OPENQUERY? 它是否來自SSMS內的另一台服務器/您的工作站? 或者是來自其他環境/語言/工具? 如果您還沒有在SSMS中執行openquery,請嘗試訪問作為鏈接服務器。

請報告結果和/或消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM