Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Quelle est la meilleure façon de récupérer des enregistrements par lots à partir de SQL Server

Si vous ne pouvez pas utiliser OFFSET-FETCH dans SQL Server 2012 et en supposant que la table a une clé primaire ou une ou plusieurs colonnes qui vous permettent d'identifier de manière unique une ligne, appelons-la UniqueKey , puis à partir de 2005, vous pouvez utiliser ROW_NUMBER comme ça...

SELECT UniqueKey, col2, col3 
FROM 
(
  SELECT UniqueKey, col2, col3, ROW_NUMBER() OVER (ORDER BY UniqueKey) AS RowNum 
  FROM YourTable
) sub
WHERE sub.RowNum BETWEEN @startRow AND @endRow