当没有定义的链接服务器时,如何删除链接服务器元数据缓存?
How do you remove linked server metadata cache when there are no defined linked servers?
Microsoft 链接服务器实例缓存元数据以加快查询解析速度。当进度数据库驻留在远程服务器上时,这不会正确刷新。
删除链接服务器实例不会删除元数据缓存。
任何新的链接服务器都会继续使用之前链接服务器的旧缓存。这导致了这样的错误...
链接服务器 "ANY NAME" 的 OLE DB 提供程序 "MSDASQL" 提供了不一致的元数据。在执行期间提供了一个在编译时未找到的额外列。
直到有人对远程 Progress DB 进行架构更改后,才出现此问题。特别是从导致上述错误的 table 中删除列。
我使用的是 SQL Standard Edition 2012。因此,请不要询问惰性架构验证。 ;)
备份数据并在 Progress OpenEdge 系统中删除有问题的 table。创建一个新的 table 并加载数据。
现在,问题已经解决了。
有什么不同?现在 SYSPROGRESS.SYSCOLUMNS 中没有 ID 间隙,Microsoft 链接服务器实例缓存元数据中也没有序号问题。
Microsoft 链接服务器实例缓存元数据以加快查询解析速度。当进度数据库驻留在远程服务器上时,这不会正确刷新。
删除链接服务器实例不会删除元数据缓存。
任何新的链接服务器都会继续使用之前链接服务器的旧缓存。这导致了这样的错误...
链接服务器 "ANY NAME" 的 OLE DB 提供程序 "MSDASQL" 提供了不一致的元数据。在执行期间提供了一个在编译时未找到的额外列。
直到有人对远程 Progress DB 进行架构更改后,才出现此问题。特别是从导致上述错误的 table 中删除列。
我使用的是 SQL Standard Edition 2012。因此,请不要询问惰性架构验证。 ;)
备份数据并在 Progress OpenEdge 系统中删除有问题的 table。创建一个新的 table 并加载数据。
现在,问题已经解决了。
有什么不同?现在 SYSPROGRESS.SYSCOLUMNS 中没有 ID 间隙,Microsoft 链接服务器实例缓存元数据中也没有序号问题。