当前位置:asp编程网>技术教程>Database教程>  正文

sp_executeSQL解决动态生成的sql语句中查询结果的总数

2011-12-29 17:07:45   来源:www.aspbc.com    作者:wangsdong   浏览量:2533   收藏

/* 功能:sp_executeSQL解决动态生成的sql语句中查询结果的总数 */
/* 开发:www.aspbc.com(asp编程网) */
/* 作者:wangsdong */
/* 原创文章,转载请保留此信息,谢谢 */

平常的查询某张表的数据,通常的存储过程是这样写的

create PROCEDURE test
 @PageCount int = 0 output
AS
BEGIN
 SET NOCOUNT ON; 
 SELECT @PageCount = count(*) FROM admin
 return @PageCount
END
(鼠标移到代码上去,在代码的顶部会出现四个图标,第一个是查看源代码,第二个是复制代码,第三个是打印代码,第四个是帮助)


但如果存储过程中的sql语句是根据不同的条件生成,那使用上面的方法就没法实现了,这里就需要使用sql server中的sp_executeSQL函数来实现。具体如下:

create PROCEDURE [dbo].[test]
 @pid int = 1,
 @PageCount int = 0 output
AS
BEGIN
 SET NOCOUNT ON;
 DECLARE @sql2 nvarchar(200)
 SET @sql2='SELECT @PageCount = count(*) FROM admin where 1=1'
 IF @pid=1 
  SET @sql2=@sql2+' and is_show=1'
 exec sp_executeSQL @sql2,N'@PageCount int output', @PageCount output
 
 return @PageCount
END
(鼠标移到代码上去,在代码的顶部会出现四个图标,第一个是查看源代码,第二个是复制代码,第三个是打印代码,第四个是帮助)


 



关于我们-广告合作-联系我们-积分规则-网站地图

Copyright(C)2013-2017版权所属asp编程网