Sql server 2012 将服务器链接到进度-元数据不一致

Sql server 2012 将服务器链接到进度-元数据不一致,sql-server-2012,linked-server,openedge,progress-db,Sql Server 2012,Linked Server,Openedge,Progress Db,我正在进行系统集成与进步(10.2B SP6)。我正在使用SQL 2012和Progress ODBC 64位驱动程序。我创建了一个链接服务器,大部分查询都可以工作,但是对3个表的查询失败,并显示此消息 信息7353,16级,状态1,第1行 链接服务器“进度”的OLE DB提供程序“MSDASQL”提供了不一致的元数据。在执行期间提供了一个在编译时找不到的额外列 我发现有两个建议可以解决这个问题:更改延迟模式验证和重新创建链接服务器 所以这是可行的: SELECT Col1 FROM OPENQ

我正在进行系统集成与进步(10.2B SP6)。我正在使用SQL 2012和Progress ODBC 64位驱动程序。我创建了一个链接服务器,大部分查询都可以工作,但是对3个表的查询失败,并显示此消息

信息7353,16级,状态1,第1行 链接服务器“进度”的OLE DB提供程序“MSDASQL”提供了不一致的元数据。在执行期间提供了一个在编译时找不到的额外列

我发现有两个建议可以解决这个问题:更改延迟模式验证和重新创建链接服务器

所以这是可行的:

SELECT Col1 FROM OPENQUERY(Progress, 'select Col1 from DB.pub.Table')
但这就产生了上述错误

select Col1 from progress.DB.pub.Table
使用RazorSQL和相同的ODBC驱动程序,查询工作正常,但我需要使用链接服务器,因为实际查询将从计划的SQL作业运行,提取数据并插入SQL

我的实际查询需要连接到此表。我可以通过将大量记录加载到临时表并加入临时表来解决这个问题,但这样做效率太低了

有人遇到这个问题或有什么建议吗

问候


在知识库中标记类似错误的建议:“使用openquery”。无论如何,您都应该使用openquery。否则,您可能会遇到一些严重的性能问题。谢谢Tom,他从未真正使用过OpenQuery。它可以用于一个完整的复杂查询(超过100行、多个连接和参数或局部变量)吗?忘了提到使用openquery是真正的PITA(除非我遗漏了什么)。它就像动态sql:转义引号,不进行语法检查、着色、代码格式化等。我的每一根纤维都告诉我应该使用它