SQL 游标

数据库游标允许你选择一组数据,通过翻阅这组数据记录——通常被称为数据集,检查每一个游标所在的特定的行。

你可以将游标和局部变量组合在一起对每一个记录进行检查,当游标移动到下一个记录时,来执行一些外部操作。
游标的另一个常见的用法是:保存查询结果以备以后使用。一个游标结果集是通过执行SELECT 查询来建立的。如

果你的应用程序或过程需要重复使用一组记录,那么第一次建立游标以后再重复使用,将会比多次执行查询快得多。

而且,你还能在查询的结果集中翻阅记录。

  1. 创建游标

Transcat-SQL创建游标语法如下:

SYNTAX:
       declare cursor_name cursor
             for select_statement
            [for {read only | update [of column_name_list]}]

例子:

declare myCursor cursor
for select * from student
go

现在,已经有了一个名字为myCursor的游标,它包括了所有的student表中的内容。
为了使用这个游标,你必须先打开它。

  1. 打开游标

SYNTAX:

       open cursor_name

例子:

open myCursor
go

现在,我们可以使用myCursor来翻阅结果集了。

  1. 使用游标

SYNTAX:

fetch cursor_name [into fetch_target_list]

每次当FETCH 命令运行时,游标指针每次可以在结果集中移动一行。如果需要,游标指针

所在的行的数据可以被填充到fetch_target_list 变量中。

例子:

declare @id char(11)
declare @name char(10)
declare @sex char(2)
declare @age char(2)

fetch myCursor into @id,@name,@sex,@age
while(@@sqlstatus=0)
begin
    print @id
    print @name
    print @sex
    print @age
    fetch myCursor into @id,@name,@sex,@age
end
go

 

  1. 关闭游标

SYNTAX:

close cursor_name

这时,游标只有再次打开后才能使用。

  1. 释放游标

如果你已经完全结束了对一个游标的使用,DEALLOCATE 命令将释放游标所占用

的内存,并且可以让游标的名字可以被再次使用。

这是该命令的语法格式:
SYNTAX:
deallocate cursor cursor_name

posted @ 2010-03-23 22:04  shilcare  阅读(314)  评论(1)    收藏  举报