存储过程语法不懂 跪求神仙解决
create procedure pcommon_fenye
{
表名 需要返回的列,排序,两个排序,vpagesize,pageindex ,总记录,排序类型,查询条件
@tblName varchar(400), -- 表名
@strGetFields varchar(1500) = ' * ', -- 需要返回的列
@strOrderKey varchar(100)='', -- 排序的字段名
@PageSize int = 10, -- 页尺寸
@PageIndex int = 1,
@OrderType bit = 0, -- 页码
@strWhere varchar(2000) = '', -- 查询条件 (注意: 不要加 where)
@TotalCount int output -- 所有满足条件的记录总数
}
as
declare @strsql varchar(5000)
@tmpstrsql nvarchar(1000)
@pagetotal int
if(@strWhere != '')
set @tmpstrsql = N'select @total =count (*)from '+ @tblName +'where'+@strWhere
else
set @tmpstrsql = N'select @total =count (*)from '+ @tblName
exec sqexecutesql @tmpstrsql ,N'@total int output,@TotalCount output
得到总页数
set @pagetotal = (@TotalCount +@PageSize -1)/@PageSize
请问sqexecutesql @tmpstrsql 是什么时候执行,N'@total int output,@TotalCount output是什么意思
set @pagetotal = (@TotalCount +@PageSize -1)/@PageSize @TotalCount是怎么得到的?
@OrderType bit = 0, bit 是什么类型
------解决方案--------------------楼主,你这是在问什么啊???
看那代码,是在"pcommon_fenye"过程里为@total参数赋值(在子语句里动态执行),接着为@tmpstrsql 赋值
然后在再调用另一存储过程"sqexecutesql",传递刚赋值的参数,完后
再执行set @pagetotal = (@TotalCount +@PageSize -1)/@PageSize @TotalCount语句
然后 "pcommon_fenye"过程结束.
set @pagetotal = (@TotalCount +@PageSize -1)/@PageSize @TotalCount是怎么得到的?
这些都是参数啊,有的是定义时给的值,有的是执行过程中赋予的.
@TotalCount int output -- 所有满足条件的记录总数后面的output说明它是个输出参数,给它赋值后,可以像变量一样取得它的值.
------解决方案--------------------sql代码没看明白。。。
转:
SQL Server 中的 bit 类型的使用
1。往数据库中添加,修改 bit 类型的字段时,只能用 0 或者 1。
2。在SQL语句中也只能用 0 或者 1,比如 "where bFlag=1" 不能用 "where bFlag=TURE"。
3。在使用RecordSet 将bit字段的数据取出来后,转换为了 Boolean 类型。这个时候判断要用 TRUE 和 FALSE
------解决方案--------------------select @TotalCount as total --记录总数
print (@strSQL)打印当前SQL 语句,调试的时候方便
@TotalCount 可以返回
------解决方案--------------------exec sqexecutesql @tmpstrsql ,N '@total int output,@TotalCount output
这是执行存储过程 sqexecutesql 后面的变量是存储过程用到的参数,其中 @TotalCount 是输出参数,输出的是总记录数
提供给下面的SQL来计算总页数
set @pagetotal = (@TotalCount +@PageSize -1)/@PageSize