Well, here's a sample of what not to do...I thought FETCH ABSOLUTE might figure a way to jump pages....nut even the sample where you want to start at page 1 takes about 15 seconds..The total is about 1/4 million rows...smaller tables fly thoughUSE NorthwindGOCREATE PROC mySproc99 @Page int, @rows intASSET NOCOUNT ONDECLARE @counter int , @spin_up int , @OrderID int , @CustomerID nchar , @EmployeeID int , @OrderDate datetime , @RequiredDate datetime , @ShippedDate datetime , @ShipVia int , @Freight money , @ShipName nvarchar , @ShipAddress nvarchar , @ShipCity nvarchar , @ShipRegion nvarchar , @ShipPostalCode nvarchar , @ShipCountry nvarcharDECLARE @Orders table ( OrderID int , CustomerID nchar , EmployeeID int , OrderDate datetime , RequiredDate datetime , ShippedDate datetime , ShipVia int , Freight money , ShipName nvarchar , ShipAddress nvarchar , ShipCity nvarchar , ShipRegion nvarchar , ShipPostalCode nvarchar , ShipCountry nvarchar)SELECT @counter = 1, @Spin_Up = ((@Page*@Rows)-@Rows)+1DECLARE myCursor99 CURSOR SCROLLFOR SELECT OrderID , CustomerID , EmployeeID , OrderDate , RequiredDate , ShippedDate , ShipVia , Freight , ShipName , ShipAddress , ShipCity , ShipRegion , ShipPostalCode , ShipCountry FROM Orders2ORDER BY OrderID OPEN myCursor99FETCH ABSOLUTE @Spin_up FROM myCursor99INTO @OrderID , @CustomerID , @EmployeeID , @OrderDate , @RequiredDate , @ShippedDate , @ShipVia , @Freight , @ShipName , @ShipAddress , @ShipCity , @ShipRegion , @ShipPostalCode , @ShipCountry WHILE @@FETCH_STATUS = 0 AND @counter <= @rows BEGIN INSERT INTO @Orders ( OrderID , CustomerID , EmployeeID , OrderDate , RequiredDate , ShippedDate , ShipVia , Freight , ShipName , ShipAddress , ShipCity , ShipRegion , ShipPostalCode , ShipCountry) SELECT @OrderID , @CustomerID , @EmployeeID , @OrderDate , @RequiredDate , @ShippedDate , @ShipVia , @Freight , @ShipName , @ShipAddress , @ShipCity , @ShipRegion , @ShipPostalCode , @ShipCountry FETCH NEXT FROM myCursor99 INTO @OrderID , @CustomerID , @EmployeeID , @OrderDate , @RequiredDate , @ShippedDate , @ShipVia , @Freight , @ShipName , @ShipAddress , @ShipCity , @ShipRegion , @ShipPostalCode , @ShipCountry SELECT @counter = @counter + 1 ENDCLOSE myCursor99DEALLOCATE myCursor99SELECT OrderID , CustomerID , EmployeeID , OrderDate , RequiredDate , ShippedDate , ShipVia , Freight , ShipName , ShipAddress , ShipCity , ShipRegion , ShipPostalCode , ShipCountry FROM @OrdersSET NOCOUNT OFFGOEXEC mySproc99 1,20/*DROP TABLE Orders2DROP Proc mySproc99GO*//*SELECT * INTO Orders2 FROM (SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALLSELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders UNION ALL SELECT * FROM Orders) AS XXXCREATE INDEX Orders2_OrderId ON Orders2(OrderId)*/
Brett8-)