`
yanlp
  • 浏览: 76871 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

sql server 存储过程示例

    博客分类:
  • SQL
阅读更多

如下:

	if object_id('index_proc') is not null	
	drop proc index_proc
	go
	create procedure index_proc
	@postAmount int output,
	@replyAmount int output,
	@todayAmount int output,
	@userAmount int output,
	@newUser varchar(20) output

	as
	begin
	declare @todayPost int;
	declare @todayReply int;
	
	---新建一个临时表,通过下面的游标循环把数据插入到此临时表中
	if exists( select * from tempdb..sysobjects where id=OBJECT_ID('tempdb..#new_post') )
	drop table #new_post;
	create table #new_post(
	  mid int ,
	  pid int ,
	  theme varchar(100),
	  username varchar(30),
	  pdatetime smalldatetime,
	  today_post int,
	  postAmount int,
	  replyAmount int,
	  mname varchar(20)	
	)
	----游标
	declare cur cursor  for select mid from module;
	declare @mid int;
	open cur;
	fetch next from cur into @mid;
	while @@fetch_status=0
	begin
	
	insert into #new_post(mod.mid,p.pid,theme,username,pdatetime,today_post,postAmount,replyAmount,mname) select top 1 mod.mid,pid,theme,username,pdatetime,
	(select count(p1.pid) from post as p1 where convert(char(10),p1.pdatetime,126)=convert(char(10),getdate(),126) and p1.mid = @mid) as today_post, 
	(select count(p2.pid) from post as p2 where p2.mid = @mid) as postAmount, 
	(select count(r1.rid) from reply as r1 where r1.pid in(select p3.pid from post as p3 where p3.mid =@mid)) as replyAmount,
	mod.mname
	from module as mod  left join post as p on mod.mid = p.mid   where mod.mid = @mid order by p.pdatetime desc;
	fetch next from cur into @mid;
	end
	close cur
	deallocate cur   	
	select * from  #new_post;
	select @postAmount = count(1) from post;
	select @replyAmount = count(1) from reply;
	select @todayPost = count(1) from post where convert(char(10),pdatetime,126)=convert(char(10),getdate(),126);
	select @todayReply = count(1) from reply  where convert(char(10),rdatetime,126)=convert(char(10),getdate(),126);
	set @todayAmount  = @todayPost+@todayReply;
	select @userAmount = count(1) from bbs_user;
	select top 1 @newUser =  username from bbs_user order by registerTime desc
	end
	
	---游标调用
	go
	declare @postAmount int;
	declare	@replyAmount int;
	declare	@todayAmount int;
	declare	@userAmount int;
	declare	@newUser varchar(20);
	
	execute   index_proc @postAmount output,@replyAmount output,@todayAmount output,@userAmount output,@newUser output;
	print @postAmount
	print @todayAmount

  

jdcb调用存储过程代码:

	public  BbsIndex callIndexProc(){
		Connection conn = getConnection();
		try {
			CallableStatement cs = conn.prepareCall("{call dbo.index_proc(?,?,?,?,?)}");
			cs.registerOutParameter(1,Types.INTEGER);
			cs.registerOutParameter(2,Types.INTEGER);
			cs.registerOutParameter(3,Types.INTEGER);
			cs.registerOutParameter(4,Types.INTEGER);
			cs.registerOutParameter(5,Types.VARCHAR);
			 ResultSet rs = cs.executeQuery();
			 BbsIndex bbs = new BbsIndex();
			 while(rs.next()){
				  //ModuleEntity me = new ModuleEntity();
				  IndexTempEntity ite = new IndexTempEntity();
				  ite.setMid(rs.getInt(1));
				  ite.setPid(rs.getInt(2));
				  ite.setTheme(rs.getString(3));
				  ite.setUsername(rs.getString(4));
				  ite.setPdatetime(rs.getDate(5));
				  ite.setToday_post(rs.getInt(6));
				  ite.setPostAmount(rs.getInt(7));
				  ite.setReplyAmount(rs.getInt(8));
				  ite.setMname(rs.getString(9));
				  bbs.getIndexTempList().add(ite);
			 }
			 bbs.setPostAmount(cs.getInt(1));
			 bbs.setReplyAmount(cs.getInt(2));
			 bbs.setTodayAmount(cs.getInt(3));
			 bbs.setUserAmount(cs.getInt(4));
			 bbs.setNewUser(cs.getString(5));
			 return bbs;
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			DbUtils.closeQuietly(conn);
		}
		return null;
	}

 

分享到:
评论

相关推荐

    Excel使用ADO调用SQL Server存储过程示例

    后期对于投票结果需要进行一些权重的计算,过程比较复杂,便想到把计算过程放在SQL Server端,使用存储过程实现。但是,在调用存储过程的过程中却遇到了问题,一直无法返回记录集。最后发现问题出现在记录集的...

    SQLServer存储过程调用WebService

    **创建存储过程示例**: ```sql CREATE PROCEDURE dbo.CallWebService @Url NVARCHAR(500), @MethodName NVARCHAR(100) AS BEGIN EXEC sp_OACreate 'WebServiceExample', @object_id OUTPUT EXEC sp_OAMethod @...

    SQLSERVER存储过程例子

    以下是针对"SQLSERVER存储过程例子"的详细解释。 1. **存储过程的概念**: 存储过程是一组为了完成特定功能的SQL语句,这些语句被组合在一起并保存在数据库中,用户可以通过调用存储过程的名字来执行这些语句。...

    SQLServer存储过程中事务的使用方法

    本篇将详细介绍如何在SQL Server存储过程中使用事务。 首先,事务有四个基本特性,即ACID(原子性、一致性、隔离性和持久性): 1. 原子性(Atomicity):事务中的所有操作要么全部完成,要么全部不完成,不会留下...

    SQL Server调用Webservice示例

    - 创建一个SQL Server存储过程,调用.NET方法。 在示例中,"SQL项目调用Webservice示例"可能包含了一个完整的.NET存储过程示例,用于演示如何构建和调用Web Service。可能的结构包括: - 存储过程源代码,展示...

    执行Sqlserver存储过程返回DataSet

    ### 执行SQL Server 存储过程并返回DataSet 在软件开发过程中,经常需要与数据库进行交互,其中一种常见的场景就是通过调用存储过程来获取数据并处理这些数据。本篇文章将详细探讨如何在C#中执行SQL Server的存储...

    sqlserver 存储过程With Encryption加密的解密

    ### SQL Server 存储过程 With Encryption 加密的解密方法 #### 背景与目的 在SQL Server中,为了保护存储过程中的敏感代码或逻辑,可以使用`WITH ENCRYPTION`选项对存储过程进行加密处理。这可以有效防止未经授权...

    SQL Server存储过程对比工具

    SQL Server存储过程对比工具是一种高效且实用的软件解决方案,它专为数据库管理员和开发人员设计,用于比较和分析两个SQL Server数据库中的存储过程。这款工具的主要功能是帮助用户快速识别和定位不同数据库间存储...

    SQLSERVER 存储过程 语法

    本文将深入解析SQL Server存储过程的创建、参数传递、事务管理、条件判断以及游标使用的语法细节。 #### 创建存储过程 存储过程的基本语法如下: ```sql CREATE PROCEDURE 存储过程名称 @参数1 数据类型, @参数...

    如何编写SQL Server存储过程的详尽学习资料

    至于"SQLServer2000存储过程与XML编程第2版code"这个文件,它可能包含了一些针对SQL Server 2000的存储过程示例代码和XML相关的实践。XML在SQL Server中用于数据交换和存储,学习如何在存储过程中使用XML数据类型和...

    sql server 2008 存储过程示例带游标

    下面将详细解析标题“sql server 2008 存储过程示例带游标”所涉及的知识点,包括存储过程的创建、游标的使用以及SQL Server 2008中的特性。 ### 存储过程 存储过程是预编译的SQL语句集合,存储在数据库服务器上,...

    sql server 2008 存储过程与储发器 详解 书籍

    在SQL Server 2008中,存储过程和触发器是数据库管理中不可或缺的重要组成部分,它们为数据库系统提供了更高级别的功能和控制。本篇将深入解析这两个概念及其在实际应用中的具体用法。 首先,存储过程是预编译的SQL...

    Java中调用SQL Server存储过程

    在Java编程环境中,如Eclipse 3.3,与数据库进行交互是常见的需求,而调用SQL Server存储过程是其中一种高效的操作方式。存储过程是预编译的SQL语句集合,可以封装复杂的业务逻辑,提高性能并降低网络流量。本篇文章...

    SQL Server存储过程的命名标准

    本文将详细介绍SQL Server存储过程中推荐使用的命名标准,并通过具体示例加以说明。 ### SQL Server存储过程命名标准概述 #### 前缀规则 存储过程的名称应以`sp_`为前缀,这是SQL Server系统内部所采用的标准前缀...

    sqlserver的存储过程与 where in 多值参数

    在SQL Server中,存储过程是预编译的SQL语句集合,它们封装了特定的数据库操作,提高了代码的重用性和执行效率。当涉及到处理多个值时,我们常常会遇到如何将这些值作为参数传递给存储过程的问题。本文将探讨在SQL ...

    SQL 存储过程发送HTTP请求

    ### SQL存储过程发送HTTP请求知识点解析 ...综上所述,通过SQL Server存储过程发送HTTP请求是一项实用的技术,能够在数据库层面上实现与外部系统的有效集成。然而,在实际应用时还需要考虑到安全性、性能等方面的问题。

    SQL SERVER数据库开发之存储过程应用.rar

    在SQL Server数据库开发中,存储过程是至关重要的一个部分,它是一种预编译的SQL语句集合,可以被多次调用,以提高数据库操作的效率和安全性。本教程旨在深入探讨存储过程在SQL Server中的应用,帮助开发者更好地...

    jsp如何调用sqlserver存储过程

    在JavaServer Pages (JSP) 中调用SQL Server存储过程是一项常见的任务,特别是在构建Web应用程序时需要执行复杂的数据库操作。存储过程是预先编译的SQL语句集合,可以在数据库服务器上执行,提供性能优化和代码复用...

Global site tag (gtag.js) - Google Analytics