想做一个分页的存储过程,只是个简单的实例,为的是学习下存储过程的编写,存储过程代码如下:
- SQL code
ALTER proc [dbo].[GetPageData1]@pageIndex int=1, --页码@pageSize int=10, --页容量@tblName varchar(100), --表名@keyName varchar(100),--主键名@where varchar(500), --查询条件@rowCount int output --返回总行数asbegin declare @sqlStr varchar(1000) set @sqlStr = 'select @rowCount = count([email protected]+') from [[email protected]+']' exec(@sqlStr)end
运行这段存储过程时提示如下错误:
消息 137,级别 15,状态 1,第 1 行
必须声明标量变量 "@rowCount"。
请问错在哪里?应该如何写才对?
------解决方案--------------------
- SQL code
ALTER proc [dbo].[GetPageData1] @pageIndex int=1, --页码 @pageSize int=10, --页容量 @tblName varchar(100), --表名 @keyName varchar(100),--主键名 @where varchar(500), --查询条件 @rowCount int output --返回总行数 as begin declare @sqlStr varchar(1000) set @sqlStr = 'select '+convert(varchar(10),@rowCount)+' = count([email protected]+') from [[email protected]+']' --PRINT @sqlStr 可以通过print来查看,先不用exec exec(@sqlStr) end