SQL Server 存储过程缓存



我正在尝试通过两种不同的方法执行相同的选择。

首先通过使用存储过程的表值函数

SELECT * FROM dbo.DF_PRODUCTS();

第二次通过openquery,通过执行存储过程

SELECT * 
FROM openquery([servername], 
               'SET FMTONLY OFF exec DatabaseName.dbo.My_StoredProcedure')

问题是我得到了各种结果,我认为问题出在存储过程缓存中。谁能帮我解决这个问题?

如果您从

运行完全相同的代码中获得不同的结果,并且"唯一"(感知)的区别是你通过 OPENQUERY 命令运行一个,请执行健全性检查并确认 OPENQUERY([servername]...) 肯定在与第一个查询相同的服务器上运行。

最可能的情况是,您的链接服务器与您在本地运行的服务器不同 - 例如,您针对本地数据库运行而不是开发/测试/暂存/实时数据库。

最新更新