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