需求:查詢結果帶行號(1,2,3...),便於分頁或顯示。
-- 1. 將結果連同行號存入暫存表
SELECT no = IDENTITY(INT, 1, 1), * INTO #temptable FROM TableName -- ORDER BY SortField
-- 2. 從暫存表查詢(可加行號篩選實現分頁)
SELECT * FROM #temptable -- WHERE no >= 6 AND no < 10
-- 3. 清理
DROP TABLE #temptable
IDENTITY(INT, 1, 1):種子1,遞增1,自動產生連續行號。#temptable為Session級,自動清理,無併發衝突。##temptable或永久表。ROW_NUMBER() OVER (ORDER BY ...)窗口函數,無需暫存表,效能更優。