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 procedure 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
Theo hmweb.com.vn
Các tin mới hơn:
Hướng dẫn tích hợp giao diện trang quản trị SB Admin 2 vào Laravel 5.8.
Hướng dẫn tích hợp Google ReCaptcha v2 vào Laravel bằng curl.
Học lập trình React JS trong vòng 5 phút.
Sử dụng trình soạn thảo CKeditor tích hợp CKFinder với Laravel.
Hướng dẫn cài đặt Apache, PHP, MySQL, PHPMyAdmin trên Windows 10 và cấu hình SendMail.
Các tin cũ hơn:
Tạo sitemap với dữ liệu từ database.
Giảm kích thước file CSS với .NET.
Sao lưu tất cả database của SQL Server.
10 lý do bạn chọn MySQL.
Hướng dẫn install YetanotherForum trên localhost.