sql server 2005 cursor

--//*/cursor (sqlserver) 游标
/*
   1.declare  游标名[scroll]  cursor  for select语句[for update [of列表名]]
       定义一个游标,使之对应一个select语句
       for update任选项,表示该游标可用于对当前行的修改与删除
    2.open
       打开一个游标,执行游标对应的查询,结果集合为该游标的活动集
       open  游标名
    3.fetch
       在活动集中将游标移到特定的行,并取出该行数据放到相应的变量中
       fetch [next | prior | first | last | current | relative n | absolute m] 游标名into  [变量表]
    4.close
       关闭游标,释放活动集及其所占资源。需要再使用该游标时,执行open语句
       close  游标名
    5.deallocate 
       删除游标,以后不能再对该游标执行open语句
       deallocate 游标名
    6.@@FETCH_STATUS
        返回被FETCH 语句执行的最后游标的状态.
       0 fetch语句成功
        -1 fetch语句失败
        -2 被提取的行不存在
*/
--//语法如下
DECLARE cursor_name CURSOR FOR {select_sql |update_sql}
OPEN cursor_name
FETCH NEXT cursor_name INTO [params] --//将行数据复制到变量表中的变量中
WHILE @@FETCH_STATUS = 0 --//游标状态
BEGIN
	--//sql 语句
	FETCH NEXT cursor_name INTO [params]
END
CLOSE cursor_name --//关闭游标
DEALLOCATE cursor_name --//释放游标
--//其中游标的 FETCH 语句将影响 @@ROWCOUNT
--//*/end cursor

posted on 2010-11-15 19:13  fengpb  阅读(323)  评论(0)    收藏  举报

导航