There is no LIMIT keyword in SQL Server 2000 (am not sure about SQL Server 2005). You have to provide a custom tailored solution to page your results. The following Stored Procedure in T-SQL (SQL for MS- SQL Server) will provide you with an explanation on how to proceed.
The Procedure LOOKS complicated but it is not. You simply provide it with a PageIndex and a PageSize and it returns the desired results. For example, for a Page Size of 30 you send the SP the parameters 0 and 30 to retrieve the first page (with 30 results per page). For the next page, you send the SP the parameters 1 and 30, and so on...
Here is the code:
CREATE PROCEDURE northwind_OrdersPaged
( @PageIndex int, @PageSize int) AS
BEGIN
DECLARE @PageLowerBound int
DECLARE @PageUpperBound int
DECLARE @RowsToReturn int
-- First set the rowcount
SET @RowsToReturn = @PageSize * (@PageIndex + 1)
SET ROWCOUNT @RowsToReturn
-- Set the page bounds
SET @PageLowerBound = @PageSize * @PageIndex
SET @PageUpperBound = @PageLowerBound + @PageSize + 1
-- Create a temp table to store the select results
CREATE TABLE #PageIndex
( IndexId int IDENTITY (1, 1) NOT NULL, OrderID int)
-- Insert into the temp table
INSERT INTO #PageIndex (OrderID)
SELECT OrderID FROM Orders
ORDER BY OrderID DESC
-- Return total countSELECT COUNT(OrderID) FROM Orders
-- Return paged results
SELECT O.*
FROM Orders O, #PageIndex PageIndex
WHERE O.OrderID = PageIndex.OrderID AND
PageIndex.IndexID > @PageLowerBound AND PageIndex.IndexID < @PageUpperBound
ORDER BY
PageIndex.IndexID
END