SQL Server 2008存储过程与不同的数据库返回不同的结果

时间:2013-11-05 15:48:23

标签: sql sql-server-2008 stored-procedures temp-tables

我有存储过程,当我在同一服务器上的2个不同数据库中执行时返回不同的结果。

e.g。在一个数据库中,它返回-4, -3.5, 3, -2.5, -2, -1,0

在其他数据库中,它返回3, -4, 2.5, -1, -1.5

这最近已经开始发生。最初我们在prod DB中注意到了这一点,但是我们所有的测试数据库都返回了与prod db不同的正确输出。在用prod刷新我们的一个测试数据库之后,测试数据库中的过程结果也变为不正确的输出。任何可能发生的线索或数据库级别可能已更改的线索导致相同的过程返回不同的输出。

程序正在使用临时表,以防这可能导致某些事情。

1 个答案:

答案 0 :(得分:4)

  

是..两个数据库的结果相同,但结果顺序不同。两个数据库都在同一服务器上运行相同的程序。

如果希望按特定顺序返回行,请始终使用ORDER BY子句。在SQL中,没有其他方法可以对行进行排序,也没有理由避免使用该子句,无论似乎可以起作用。

更多信息:http://tkyte.blogspot.com/2005/08/order-in-court.html

类似的SO问题基本上与相同答案: