【发布时间】:2012-02-25 00:23:42
【问题描述】:
当我使用时,我得到的行顺序不同
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
在我的存储过程中。
下面是存储过程中定义的查询。
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT CaseRateDetailId,AmtPerWeek
FROM CaseRateDetails
WHERE CaseRateInfoId = @CaseRateInfoId
它像这样返回 AmtPerWeek:
10000,15000,5000,20000,25000,..
当我不使用
运行相同的查询时SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
声明它以正确的顺序返回行,即5000,10000,15000,20000,25000,....
我可以在上面的查询中使用 AmtPerWeek 子句的 order,但我想知道它为什么会这样?为什么会改变行的顺序?
【问题讨论】:
-
没有order by子句就没有正确订单。
-
No
ORDER BY--> 没有定义或保证或隐含的订单 - 如果您需要订单,您需要有一个ORDER BY- 总是。 -
+1 表示“但我想知道它为什么会这样。”
标签: sql sql-server-2005 tsql isolation-level