小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

自己寫了一個分頁存儲過程 - Hushan‘s Home --- 勿在浮沙筑高臺

 accesine 2005-08-27
自己寫了一個分頁存儲過程
CREATE   PROCEDURE PrSqlPager
(
        @TableName  nvarchar(100),    -- 表名
        @StrWhere nvarchar(500),    -- Where 子句
        @IdentityKey  nvarchar(100),   -- 標(biāo)識列
        @PageNum   int,   -- 頁號
        @PageSize   int,   -- 頁大小
        @ErrInfo varchar(100)  OUTPUT,  -- 出錯信息
        @TotalRecordCount int OUTPUT,   -- 總記錄數(shù)
        @PageCount int OUTPUT   -- 總頁數(shù)
)
AS
DECLARE @sql NVARCHAR(1000)
DECLARE @paramDefine NVARCHAR(1000)
/******************** 數(shù)據(jù)表中總記錄數(shù) ***********************/
SET @sql = ‘SELECT @TotalRecordCount = COUNT(*) FROM ‘ + @TableName + ‘ WHERE 1=1‘
IF @StrWhere IS NOT NULL AND @StrWhere <> ‘‘
 SET @sql = @sql + ‘ AND ‘ + @StrWhere
SET @paramDefine = ‘@TotalRecordCount INT OUTPUT‘
EXEC SP_EXECUTESQL @sql,@paramDefine,@TotalRecordCount OUTPUT
/*************************************************************/
/*********************** 驗證頁大小 **************************/
IF @PageSize < 0
 SET @PageSize = 0
IF @PageSize > @TotalRecordCount
 SET @PageNum = @TotalRecordCount
/*************************************************************/
/******************** 根據(jù)頁大小計算總頁數(shù) ***********************/
IF @TotalRecordCount % @PageSize = 0
 SET @PageCount = @TotalRecordCount / @PageSize
ELSE
 SET @PageCount = @TotalRecordCount / @PageSize + 1
/*************************************************************/
/*********************** 驗證頁號 ***************************/
IF @PageNum < 1
 SET @PageNum = 1
IF @PageNum > @PageCount
 SET @PageNum = @PageCount
/*************************************************************/
/******************** 實現(xiàn)分頁查詢 ***********************/
DECLARE @foreRecordCount INT
SET @foreRecordCount = (@PageNum - 1) * @PageSize + 1
SET @sql = ‘SELECT TOP ‘ + CAST(@PageSize as varchar)
 + ‘ * FROM ‘ + @TableName
 + ‘ WHERE ‘ + @IdentityKey + ‘ >= ‘
 + ‘ ( SELECT MAX( ‘ + @IdentityKey + ‘ ) FROM ( SELECT TOP ‘
 + CAST(@foreRecordCount as varchar)
 + @IdentityKey + ‘ FROM ‘ + @TableName
 + ‘ ORDER BY ‘ + @IdentityKey + ‘ ) AS TempTable ) ‘
 + ‘ ORDER BY ‘ + @IdentityKey
IF @StrWhere IS NOT NULL AND @StrWhere <> ‘‘
 SET @sql = @sql + ‘ AND ‘ + @StrWhere
SET @paramDefine = N‘@PageSize INT,@foreRecordCount INT‘
EXEC SP_EXECUTESQL @sql,@paramDefine,@PageSize,@foreRecordCount
/*************************************************************/
GO

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多