首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求详细解释。解决思路

2012-05-28 
求详细解释。SQL codeCREATE PROCEDURE [dbo].[Dv_GetRecordFromPage]@tableNamenvarchar(100),-- 表名@fld

求详细解释。

SQL code
    CREATE PROCEDURE [dbo].[Dv_GetRecordFromPage]@tableName   nvarchar(100),-- 表名@fldSort nvarchar(100) = 'dateandtime',-- 排序字段@pageSize int = 30,-- 每页大小 @page int = 1 ,-- 第几页@Sort bit = 1,-- 排序,@Sort=0 升序@Sort=1 降序@ConditionStr nvarchar(1000),--查询条件@fldName nvarchar(2000) = '*'--查询字段ASDeclare @strTmp nvarchar(4000)Declare @sqlSort nvarchar(20)Declare @Compare varchar(1)Declare @Compare1 nvarchar(20)Declare @intCounts intDECLARE @var_Splitvalue varchar(5000)DECLARE @nRet intIf @Sort=0Begin   Set @sqlSort ='DESC'   Set @Compare = '<'   Set @Compare1='Min'   EndElse   Begin   Set @sqlSort ='ASC'   Set @Compare = '>'   Set @Compare1='Max'EndIf @page >1   begin    SELECT @intCounts=(@Page-1) * @pagesize    SET @strTmp='SELECT @var_Splitvalue ='+@Compare1+'(' + @fldSort + ') FROM (Select Top '+CAST(@intCounts as nvarchar)+' ' + @fldSort + ' From '+@tableName+' where '+@ConditionStr+' order BY ' + @fldSort + ' ' + @sqlSort+') as t'    EXEC sp_executesql @strTmp,N'@var_Splitvalue varchar(5000) output',@var_Splitvalue output    SET ROWCOUNT @pagesize    SET @strTmp='SELECT '+ @fldName +' FROM '+@tableName+' where '+ @ConditionStr +' AND ' + @fldSort+ @Compare + ' @2 '+' '+' ORDER BY ' + @fldSort + ' ' + @sqlSort    EXEC sp_executesql @strTmp,N'@2 varchar(5000)',@2=@var_Splitvalue   EndElse   begin    SET ROWCOUNT @pagesize    SET @strTmp='SELECT '+ @fldName +' FROM '+@tableName+' where ' +@ConditionStr+' ORDER BY ' + @fldSort + ' ' + @sqlSort    EXEC sp_executesql @strTmp   end


[解决办法]
说出你的问题,。。
[解决办法]
很简单啊,你需要解释什么?

难道每一行都看不懂?

热点排行
Bad Request.