Microsoft Linked Server实例缓存元数据以加快查询分辨率。当Progress Database驻留在远程服务器上时,无法正确刷新。
删除链接服务器实例不会删除元数据缓存。
任何新的链接服务器继续使用先前链接服务器中的旧缓存。这导致了这样的错误......
链接服务器“ANY NAME”的OLE DB提供程序“MSDASQL”提供了不一致的元数据。在执行期间提供了一个在编译时未找到的额外列。
直到有人在远程Progress DB上进行架构更改后才会出现此问题。特别是从表中删除导致上述错误的列。
我正在使用SQL Standard Edition 2012.所以,不要问懒惰架构验证。 ;)
备份数据并删除Progress OpenEdge系统中的违规表。创建一个新表并加载数据。
现在,问题得到了解决。
有什么不同?现在,SYSPROGRESS.SYSCOLUMNS中没有ID缺口或Microsoft链接服务器实例缓存元数据中的序号问题。