SQL Server存储过程缓存

时间:2012-05-30 13:40:02

标签: sql-server stored-procedures user-defined-functions openquery

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

首先使用存储过程

通过表值函数
SELECT * FROM dbo.DF_PRODUCTS();

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

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

问题是我得到了各种结果,我认为问题出在存储过程缓存中。任何人都可以帮我这个吗?

1 个答案:

答案 0 :(得分:0)

如果您从运行完全相同的代码获得不同的结果,并且“仅”(感知)差异是您通过OPENQUERY命令运行一个,请进行完整性检查并确认OPENQUERY([servername] ...)肯定是在与第一个查询相同的服务器上运行。

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