Xin giới thiệu với các bạn Procedure phân trang dữ liệu trong SQL server
Giả sử ta có 1 bảng
trong cơ sở dữ liệu chỉ gốm 2 trường là CateID và CateName. sau đây là
Store phân trang khi cần truy vấn dữ liệu có phân trang
CREATE PROCEDURE [dbo].[spPhanTrang_Table] ( @PageNumber int, @PageSize int ) AS DECLARE @Start int, @End int BEGIN TRANSACTION GetDataSet SET @Start = (((@PageNumber - 1) * @PageSize) + 1) IF @@ERROR <> 0 GOTO ErrorHandler SET @End = (@Start + @PageSize - 1) IF @@ERROR <> 0 GOTO ErrorHandler CREATE TABLE #TemporaryTable ( Row int IDENTITY(1,1) PRIMARY KEY, CateID int, CateName nvarchar(100) ) IF @@ERROR <> 0 GOTO ErrorHandler INSERT INTO #TemporaryTable SELECT CateID, CateName FROM [TB_Category] IF @@ERROR <> 0 GOTO ErrorHandler SELECT CateID, CateName FROM #TemporaryTable WHERE (Row >= @Start) AND (Row <= @End) IF @@ERROR <> 0 GOTO ErrorHandler DROP TABLE #TemporaryTable COMMIT TRANSACTION GetDataSet RETURN 0 ErrorHandler: ROLLBACK TRANSACTION GetDataSet RETURN @@ERRORĐể sử dụng Store trên Bạn dùng lệnh:
EXEC spPhanTrang_Table (1,20) -- Nếu bạn muốn hiển thị dữ liệu trang 1 và 20 bản ghi trên 1 trang
Chúc các bạn thành công




0 comments:
Post a Comment