【 tulaoshi.com - SQLServer 】
在前面几节,我们详细介绍了如何声明游标,从游标中读取数据以及关闭、释放游标的方法。下面我们将给出几个应用实例使读者对游标有更为全面的了解。
13.7.1 游标变量的应用
我们已经提到游标是从MS SQL SERVER 7 版本才开始使用的新的变量类型,游标常被应用在存储过程、触发器中。那么游标是如何被作为变量而应用呢?看一下系统过程sp_cursor_list 的SQL 语句文本,会大有收获。
在该存储过程中,@cursor_return 为一游标变量,并将其结果集返回给其调用者,该结果集保存有当前所有游标的各属性值。
提示:在存储过程中,如果被定义为游标类型的变量使用OUTPUT选项,则必须使用VARYING保留字,即为@variable CURSOR VARYING OUTPUT形式。
例13-9: 如果准备在客户机程序中对从数据库服务器检索出的数据进行处理,那么可以创建一个包含游标的存储过程。
首先删除同名存储过程jobs_cursor
接着创建存储过程jobs_cursor
13.7.2 嵌套游标
为了灵活地处理结果集,可以在存储过程中使用多层游标。
例13-10: 本例创建了包含二层游标的存储过程。第一层游标存放authors 表中符合过程参数的数据记录,每次从第一层游标中读取一条authors 数据,然后遍历第二层游标,将有关该authors 的信息读取出来。如果准备生成一个嵌套报表,这种方法很有效。