在SQL 2005/2008數據庫中,我們有表BatchMaster。列: RecordId bigint - autoincremental id,BatchNumber bigint - 唯一的非聚集索引,BatchDate)。我們有從本表返回分頁數據的sproc。該sproc適用於大多數客戶端,但在一個SQL服務器實例中,我們遇到了記錄順序問題。 一般情況下,在存儲過程我們做SQL ROW_NUMBER和排序問題
select * from
(
select row_number() over (order by bm.BatchDate desc, bm.BatchNumber desc) as Row,
*
from dbo.BatchMaster bm with (nolock)
)
where Row between @StartingRow and @EndgingRow
所以,你可以從上面的腳本我們想返回由BatchDate和BatchNumber分類記錄通知。這不會發生在我們的客戶之一:
記錄的順序是錯誤的。此外,請注意第一列(行),它不是按升序排列。
有人可以解釋爲什麼這樣嗎?
您需要一種對你最外層查詢 – Limey