Таблицы. Как сделать управляемый (динамический) Paging

1.Устанавливаем в настройках таблицы пагинацию по умолчанию, например, 20
2.Добавляем невидимую колонку с типом Список следующим образом:

CREATE PROCEDURE [dbo].[crud_purchases_pagingFilter_dict]
    @tableCode nvarchar(32),
    @col nvarchar(32),
    @username nvarchar(32)
AS
BEGIN
    SELECT 30 Value, '30' Text
    UNION
    SELECT 40 Value, '40' Text
END

3.В GetItems обрабатываем следующим образом:
DECLARE @paging int
SELECT @paging = Value FROM @filters WHERE [Key] = 'pagingFilter'
   
SELECT * FROM @result
ORDER BY id

OFFSET IIF(@paging>@PageSize,@paging,@PageSize) * (@Page - 1) ROWS
FETCH NEXT IIF(@paging>@PageSize,@paging,@PageSize) ROWS ONLY;

Так пользователь сможет выбирать показывать 20 строк на странице, 30 или 40.
Подходит для таблиц с большим количеством строк.
Примечание