我正在尝试通过两种不同的方法执行相同的选择。
首先通过使用存储过程的表值函数
SELECT * FROM dbo.DF_PRODUCTS();
第二次通过openquery
,通过执行存储过程
SELECT *
FROM openquery([servername],
'SET FMTONLY OFF exec DatabaseName.dbo.My_StoredProcedure')
问题是我得到了各种结果,我认为问题出在存储过程缓存中。谁能帮我解决这个问题?
如果您从
运行完全相同的代码中获得不同的结果,并且"唯一"(感知)的区别是你通过 OPENQUERY 命令运行一个,请执行健全性检查并确认 OPENQUERY([servername]...) 肯定在与第一个查询相同的服务器上运行。
最可能的情况是,您的链接服务器与您在本地运行的服务器不同 - 例如,您针对本地数据库运行而不是开发/测试/暂存/实时数据库。