I want to create a stored procedure to fetch data by PageIndex and PageSize using OFFSET ROWS
Advertisement
Answer
You can use OFFSET and FETCH NEXT for tech number of rows from index. Demo is here
CREATE PROCEDURE [dbo].[P_StudentSelectPaging]
@PageIndex          INT=1,
@PageSize           INT=10 
AS 
BEGIN   
   SET NOCOUNT ON;  
   SELECT ROW_NUMBER() OVER(ORDER BY Id DESC) AS RowNumber,[RecordCount]=COUNT(*) OVER(),
         Id,Name,City   
   FROM (
        SELECT          
            ISNULL(Id,0) AS Id,
            ISNULL(Name,0) AS Name,             
            ISNULL(City,'') AS City     
        FROM F_Posts P      
   ) AS tmpTable
   ORDER BY ISNULL(Id,1) DESC       
   OFFSET @PageSize * (@PageIndex-1) ROWS   
   FETCH NEXT @PageSize ROWS ONLY;              
END
Note:  OFFSET is only supported in the higher versions than SQL Server R2 2008.