![](/img/trans.png)
[英]OLe DB provider “SQLNCLI” for linked server was unable to begin a distributed transaction
[英]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.