内含游标的存储过程实例

第一种写法

GO
BEGIN
IF (object_id('PT_FAULT_REPORT', 'P') is not null)
drop proc PT_FAULT_REPORT;
END
GO
CREATE PROCEDURE PT_FAULT_REPORT
(@index int,
@stop_time DATETIME,
@start_time DATETIME)
AS
DECLARE
@departmentindex int,
@departmentname nvarchar(100),
@entitycount int,
@allcount int,
@fixtime int,
@fixcount int;
declare test_cur cursor for
select field1, field2, field3, field4 form table where field1=@index and
field2>@stop_time or filed3<@start_time ;
OPEN test_cur;
DECLARE @TableTemp TABLE(departmentindex int,departmentname nvarchar(100),entitycount int,allcount int,fixtime int,fixcount int);--定义表变量
FETCH NEXT FROM test_cur INTO @departmentindex, @departmentname, @entitycount, @allcount, @fixtime,@fixcount;
INsert @TableTemp values(@departmentindex, @departmentname, @entitycount, @allcount, @fixtime,@fixcount);--给表变量插值
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM test_cur INTO @departmentindex, @departmentname, @entitycount, @allcount, @fixtime,@fixcount;
INsert @TableTemp values(@departmentindex, @departmentname, @entitycount, @allcount, @fixtime,@fixcount);
--select departmentindex=@departmentindex, departmentname=@departmentname,entitycount=@entitycount, allcount=@allcount, fixtime=@fixtime,fixcount=@fixcount;
END ;
CLOSe test_cur
Deallocate test_cur;
select * from @TableTemp;--存储过程返回数据

测试存储过程

GO
DECLARE @starttime DATETIME,@endtime DATETIME;
set @starttime =GETDATE();
set @endtime=GETDATE()-30;
EXEC PT_FAULT_REPORT 3,@starttime,@endtime;

第二种传游标写法

 GO
BEGIN
IF (object_id('PT_FAULT_REPORT', 'P') is not null)
drop proc PT_FAULT_REPORT;
END
GO
CREATE PROCEDURE PT_FAULT_REPORT
(@business_index INTEGER , @start_time DATETIME , @stop_time DATETIME, @ds_cur CURSOR VARYING OUTPUT)
AS
BEGIN
SET @ds_cur = CURSOR
FORWARD_ONLY STATIC FOR
select field1, field2, field3, field4 form table where field1=@index and
field2>@stop_time or filed3<@start_time ;
OPEN @ds_cur
END;

  测试存储过程

GO
DECLARE @MyCursor CURSOR,@starttime DATETIME,@endtime DATETIME;
set @starttime =GETDATE();
set @endtime=GETDATE()-30;
EXEC PT_FAULT_REPORT 3,@starttime,@endtime,@ds_cur = @MyCursor OUTPUT;
FETCH NEXT FROM @MyCursor;
WHILE (@@FETCH_STATUS = 0)
BEGIN;
FETCH NEXT FROM @MyCursor;
END;
CLOSE @MyCursor;
DEALLOCATE @MyCursor;

  第三种写法(测试方法与第一种相似)

 GO
BEGIN
IF (object_id('PT_FAULT_REPORT', 'P') is not null)
drop proc PT_FAULT_REPORT;
END
GO
CREATE PROCEDURE PT_FAULT_REPORT
(@business_index int,
@stop_time DATETIME,
@start_time DATETIME)
AS
select * from table

1SQL Server 表变量和临时表的区别

http://www.cnblogs.com/kissdodog/archive/2013/07/03/3169470.html

 

2SQL Server存储过程Return、output参数及使用技巧

http://www.cnblogs.com/zhangchenliang/archive/2013/04/07/3006433.html

3sql2005 返回游标参数的存储过程 【CURSOR VARYING OUTPUT】

http://blog.csdn.net/paolei/article/details/6206004

4SqlServer游标、存储过程及数据块执行

http://blog.csdn.net/superhoy/article/details/7663542

SQL Server存储过程和游标有关实例以及相关网址的更多相关文章

  1. sql server 存储过程使用游标记录

    sql server 存储过程使用游标记录--方便下次参考使用 游标的组成: 声明游标 打卡游标 从一个游标中查找信息 关闭游标 释放游标 游标类型: 静态游标 动态游标 只进游标 键集驱动游标 静态 ...

  2. Sql Server存储过程和游标的配合操作

    本段代码主要为了记录存储过程以及游标的使用,防止以后自己忘记 知识点:1.存储过程书写 2.游标书写 3.游标循环更新记录 create proc saletargetas declare @ower ...

  3. SQL Server 存储过程具体解释

    SQL Server 存储过程具体解释 存储过程的优缺点 ◆长处: 运行速度更快. 存储过程仅仅在创造时进行编译,而一般SQL语句每运行一次就编译一次,所以使用存储过程运行速度更快. 存储过程用于处理 ...

  4. SQL Server基础之游标

    查询语句可能返回多条记录,如果数据量非常大,需要使用游标来逐条读取查询结果集中的记录.应用程序可以根据需要滚动或浏览其中的数据.本篇介绍游标的概念.分类.以及基本操作等内容. 一:认识游标   游标是 ...

  5. SQL Server存储过程Return、output参数及使用技巧

    SQL Server目前正日益成为WindowNT操作系统上面最为重要的一种数据库管理系统,随着 SQL Server2000的推出,微软的这种数据库服务系统真正地实现了在WindowsNT/2000 ...

  6. SQL Server 存储过程(转载)

    SQL Server 存储过程 Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这 ...

  7. (摘录)SQL Server 存储过程

    文章摘录:http://www.cnblogs.com/hoojo/archive/2011/07/19/2110862.html SQL Server 存储过程 Transact-SQL中的存储过程 ...

  8. C# 调用存储过程 Sql Server存储过程 存储过程报错,程序中的try

    C#程序调用Sql Server存储过程,存储过程中报错情况,返回值... 0.SQL存储过程 USE [Opos] GO /****** Object: StoredProcedure [dbo]. ...

  9. Microsoft SQL Server 存储过程

    Microsoft SQL Server 存储过程 TRIGGER DDL触发器:主要用于防止对数据库架构.视图.表.存储过程等进行的某些修改:DDL事件是指对数据库CREATE,ALTER,DROP ...

随机推荐

  1. Struts 2.3.4.1完整示例

    [系统环境]Windows 7 Ultimate 64 Bit [开发环境]JDK1.6.21,Tomcat6.0.35,MyEclipse10 [其他环境]Struts2.3.4.1 [项目描述]S ...

  2. float

    .clearfix:after { visibility: hidden; display: block; font-size: 0; content: " "; clear: b ...

  3. 百度Android语音识别SDK语义理解与解析方法

    百度语义理解开放平台面向互联网开发人员提供自然语言文本的解析服务,也就是能够依据文本的意图解析成对应的表示. 为了易于人阅读,同一时候也方便机器解析和生成,意图表示协议採用 json 语言进行描写叙述 ...

  4. UITabBarController 笔记(一)AppDelegate中加UITabBarController 为 rootViewController

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc ...

  5. SharePoint解决方案由VS2010升级到VS2013部署页面报错

    “/”应用程序中的服务器错误.----------------------------------------文件“/_CONTROLTEMPLATES/....../XXXUserControl.a ...

  6. Memcached管理

    安装memcached服务端: apt-get install memcached 配置文件存在于: /etc/memcached.conf 启动memcache: memcached -d -m - ...

  7. Search Bar 去掉背景颜色

    storyboard里只能设置background颜色,可是发现clear color无法使用 其实代码还是可以设置的,那就是删除背景view [[self.searchBar.subviews ob ...

  8. Unity3D使用mesh创建一个正方形

    using UnityEngine; using System.Collections; public class Quad : MonoBehaviour { // Use this for ini ...

  9. Linux学习之lsof命令

    lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件.所以如传输控制协议 ...

  10. springFramework 源码学习之源码下载与编译

    1.源码下载 Spring已经将源码从svn迁移到了git.对于习惯了svn的人来说依然可以svn checkout,最好checkout到英文路径下,本人中文路径编译不过,具体原因不明,路径: ht ...