游标简单使用

遵循“五步法”:

声明游标—>打开游标—>读取数据—>关闭游标—>删除游标

1、声明游标(DECLARE CURSOR)
DECLARE cursor_name CURSOR FAST_FORWARD
     FOR select_statement 

FAST_FORWARD
指定启用了性能优化的 FORWARD_ONLY、READ_ONLY 游标。如果指定了 SCROLL 或 FOR_UPDATE,则不能也指定 FAST_FORWARD。

2、打开游标(OPEN)
OPEN cursor_name
3、读取数据
FETCH NEXT FROM cursor_name
    INTO @variable_name  --into说明将读取的游标数据存放到指定的变量中
4、关闭游标(CLOSE)
CLOSE cursor_name
5、删除游标(DEALLOCATE)
DEALLOCATE cursor_name
全局变量 @@FETCH_STATUS

FETCH语句的执行状态保存在全局变量@@FETCH_STATUS中,其值为0表示上一个FETCH执行成功;为-1表示所要读取的行不在结果集中;为-2表示被提取的行已不存在(已被删除)。

简单使用实例:
--准备一些临时数据--
--drop table #tblMcbSno 

--创建临时表
create table #tblMcbSno 
(
	element nvarchar(30)
)
--插入数据
insert into #tblMcbSno values ('金'),('木'),('水'),('火'),('土')

--声明变量
declare @csElement nvarchar(20)

--打开游标并读取所有行

--声明游标
declare cur cursor fast_forward
for 
Select element from #tblMcbSno

--打开游标
open cur 

--获取数据
fetch next from cur	into @csElement

--全局变量
while @@FETCH_STATUS = 0
begin
	select @csElement as N'元素'
	fetch next from cur	into @csElement
end

--关闭游标
close cur

--删除
deallocate cur 

你可能感兴趣的:(数据库,sql,cursor,sqlserver)