我有一个视图,它使用链接服务器从SQL Server中的远程服务器检索数据。每次查看视图时,返回的结果都会有所不同。例如,第一次执行可能返回100行记录,但在第二次执行时,返回的行是120行。任何想法是什么原因?
答案 0 :(得分:1)
我目睹了奇怪的链接服务器结果,这些结果是写入SQL本身的非确定性的产物,即。没有TOP
子句的ORDER BY
查询。
This problem,其中包含来自链接服务器INNER JOIN
左侧的表源的多个非唯一外键,并且需要来自远程的10行向右的子查询,其中最终结果本身限制为10行,当它应该大于10行时。
绝对应该让你的SQL快速了解这些好奇心。
答案 1 :(得分:0)
链接服务器上的数据在执行之间发生了变化吗?
答案 2 :(得分:0)
您的SQL Server是否已完全修补? SQL Server 2008和2005都修复了与链接服务器的错误查询结果相关的错误。
Here就是一个例子:
969997 FIX:从SQL Server 2005或SQL Server 2008中使用索引OLE DB提供程序创建的链接服务器查询数据时收到错误的结果
答案 3 :(得分:0)
链接服务器也是SQL Server吗?如果没有,也许是一个有缺陷的司机?例如,由于旧的Informix ODBC驱动程序,我看到了奇怪的结果。您是否能够在链接服务器上运行类似于SQL事件探查器的东西,以查看它正在接收的命令?
答案 4 :(得分:0)
我不确定答案是什么,但是(假设你的计数是100和120是准确的)你能不能从两次运行中捕获数据并进行比较吗?这可能会给你一些关于发生了什么的线索。例如,它是完全不同的数据,还是重复的行(在120行批处理中)。