Create dynamic paging using store procedure in MSSQL Server Or Create Paging using store procedure by Offset
CREATE TABLE [dbo].[TableName](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](250) NOT NULL,
[CreatedDate] [datetime] NULL,
[IsActive] [bit] NULL
CONSTRAINT [PK_TableName] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
-------------------------------------------------------------------------------
INSERT INTO [TableName](Name,CreatedDate, IsActive) Values('Satyendra', GETDATE(),1)
INSERT INTO [TableName](Name,CreatedDate, IsActive) Values('Piush', GETDATE(),1)
INSERT INTO [TableName](Name,CreatedDate, IsActive) Values('Ankur', GETDATE(),1)
INSERT INTO [TableName](Name,CreatedDate, IsActive) Values('Kumar', GETDATE(),1)
INSERT INTO [TableName](Name,CreatedDate, IsActive) Values('Patel', GETDATE(),1)
INSERT INTO [TableName](Name,CreatedDate, IsActive) Values('Moradiya', GETDATE(),0)
-------------------------------------------------------------------------------
GO
CREATE PROC [dbo].[TableNamePaging]
@PageIndex int
,@PageSize int
,@TotalRecord INT OUTPUT
AS
BEGIN
SET NOCOUNT ON;
SELECT
[ID],
[Name],
[CreatedDate],
[IsActive]
FROM
[TableName]
WHERE
ID=ID
ORDER BY
ID DESC
OFFSET @PageIndex ROWS
FETCH NEXT @PageSize ROWS ONLY
SELECT @TotalRecord=
Count(*)
FROM
[TableName]
WHERE
ID=ID
RETURN @TotalRecord
END
-------------------------------------------------------------------------------
EXEC TableNamePaging 0, 4, 0
-------------------------------------------------------------------------------
--DROP Table [dbo].[TableName]
-------------------------------------------------------------------------------
--DROP PROC [dbo].[TableNamePaging]
[ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](250) NOT NULL,
[CreatedDate] [datetime] NULL,
[IsActive] [bit] NULL
CONSTRAINT [PK_TableName] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
-------------------------------------------------------------------------------
INSERT INTO [TableName](Name,CreatedDate, IsActive) Values('Satyendra', GETDATE(),1)
INSERT INTO [TableName](Name,CreatedDate, IsActive) Values('Piush', GETDATE(),1)
INSERT INTO [TableName](Name,CreatedDate, IsActive) Values('Ankur', GETDATE(),1)
INSERT INTO [TableName](Name,CreatedDate, IsActive) Values('Kumar', GETDATE(),1)
INSERT INTO [TableName](Name,CreatedDate, IsActive) Values('Patel', GETDATE(),1)
INSERT INTO [TableName](Name,CreatedDate, IsActive) Values('Moradiya', GETDATE(),0)
-------------------------------------------------------------------------------
GO
CREATE PROC [dbo].[TableNamePaging]
@PageIndex int
,@PageSize int
,@TotalRecord INT OUTPUT
AS
BEGIN
SET NOCOUNT ON;
SELECT
[ID],
[Name],
[CreatedDate],
[IsActive]
FROM
[TableName]
WHERE
ID=ID
ORDER BY
ID DESC
OFFSET @PageIndex ROWS
FETCH NEXT @PageSize ROWS ONLY
SELECT @TotalRecord=
Count(*)
FROM
[TableName]
WHERE
ID=ID
RETURN @TotalRecord
END
-------------------------------------------------------------------------------
EXEC TableNamePaging 0, 4, 0
-------------------------------------------------------------------------------
--DROP Table [dbo].[TableName]
-------------------------------------------------------------------------------
--DROP PROC [dbo].[TableNamePaging]
Comments
Post a Comment