0

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

例如在一个数据库中它返回-4, -3.5, 3, -2.5, -2, -1,0

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

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

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

4

1 回答 1

4

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

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

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

具有基本相同答案的类似 SO 问题:

于 2013-11-05T16:04:58.453 回答