class SqlServer2012RowBoundsDialect extends SqlServerRowBoundsDialect {

    @Override
    public String getPageSql(String sql, RowBounds rowBounds, CacheKey pageKey) {<FILL_FUNCTION_BODY>}

}

        StringBuilder sqlBuilder = new StringBuilder(sql.length() + 14);
        sqlBuilder.append(sql);
        sqlBuilder.append("\n OFFSET ");
        sqlBuilder.append(rowBounds.getOffset());
        sqlBuilder.append(" ROWS ");
        pageKey.update(rowBounds.getOffset());
        sqlBuilder.append(" FETCH NEXT ");
        sqlBuilder.append(rowBounds.getLimit());
        sqlBuilder.append(" ROWS ONLY");
        pageKey.update(rowBounds.getLimit());
        return sqlBuilder.toString();
    
<methods>public non-sealed void <init>() ,public java.lang.String getCountSql(org.apache.ibatis.mapping.MappedStatement, org.apache.ibatis.mapping.BoundSql, java.lang.Object, org.apache.ibatis.session.RowBounds, org.apache.ibatis.cache.CacheKey) ,public java.lang.String getPageSql(java.lang.String, org.apache.ibatis.session.RowBounds, org.apache.ibatis.cache.CacheKey) ,public void setProperties(java.util.Properties) <variables>protected com.github.pagehelper.dialect.ReplaceSql replaceSql,protected com.github.pagehelper.parser.SqlServerSqlParser sqlServerSqlParser