游标一般格式:
DECLARE 游标名称 CURSOR FOR SELECT 字段1,字段2,字段3,... FROM 表名 WHERE ...
OPEN 游标名称
FETCH NEXT FROM 游标名称 INTO 变量名1,变量名2,变量名3,...
WHILE @@FETCH_STATUS=0
BEGIN
SQL语句执行过程... ...
FETCH NEXT FROM 游标名称 INTO 变量名1,变量名2,变量名3,...
END
CLOSE 游标名称
DEALLOCATE 游标名称 (删除游标)
示例代码如下:
create function GetItemValue(@PCID nvarchar(36))
returns nvarchar(500)
begin
declare @item nvarchar(50)
declare @selsql nvarchar(500)
set @selsql=''
-- 1、定义游标
declare curitem cursor for
select itemValue from thclx where pcid=@PCID
-- 2、打开游标
open curitem
-- 3、使用游标
fetch next from curitem into @item --将游标向下移1行,获取的数据放入之前定义的变量@item
while @@fetch_status=0 --判断是否成功获取数据
begin
set @selsql =@selsql+@item+',' -- 执行的操作
fetch next from curitem into @item
end
-- 4、关闭游标
close curitem
-- 5、销毁游标
deallocate curitem
set @selsql =substring(@selsql,0,len(@selsql)-1)
return @selsql
end