Set @Descript = "successful"; -------------------参数检测---------------- IF LEN(RTRIM(LTRIM(@Table))) !> 0 Begin Set @MaxPage = 0; Set @Descript = "table name is empty"; Return; End
IF LEN(RTRIM(LTRIM(@OrderBy))) !> 0 Begin Set @MaxPage = 0; Set @Descript = "order is empty"; Return; End
IF ISNULL(@PageSize,0) <= 0 Begin Set @MaxPage = 0; Set @Descript = "page size error"; Return; End
IF ISNULL(@Page,0) <= 0 Begin Set @MaxPage = 0; Set @Descript = "page error"; Return; End -------------------检测结束----------------
Begin Try -- 整合SQL Declare @SQL nvarchar(4000), @Portion nvarchar(4000);
Set @Portion = " ROW_NUMBER() OVER (ORDER BY " + @OrderBy + ") AS ROWNUM FROM " + @Table;
Set @Portion = @Portion + (CASE WHEN LEN(@Filter) >= 1 THEN (" Where " + @Filter + ") AS tab") ELSE (") AS tab") END);
Set @SQL = "Select TOP(" + CAST(@PageSize AS nvarchar(8)) + ") " + @Field + " FROM (Select " + @Field + "," + @Portion;
Set @SQL = @SQL + " Where tab.ROWNUM > " + CAST((@Page-1)*@PageSize AS nvarchar(8));