1

我得到的错误是:

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>
4

2 回答 2

2

出于某种原因,在服务器上重新启动 MS SQL SERVICES 解决了该问题。似乎它与已修复并需要重新启动才能生效的问题有关。抱歉,我不能更具体地说明是什么解决了这个问题。

于 2013-10-30T07:50:41.627 回答
1

我刚刚注意到您编辑了您的问题,发布了您的查询。
调试的一种好方法是测试朝着您的目标迈出的小步......这样您就可以准确地看到哪个步骤引入了错误。

首先,您可以直接连接到目标服务器,在没有 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,也可以尝试作为链接服务器访问。

请报告结果和/或消息。

于 2013-10-25T15:43:46.197 回答