T-SQL游标的使用
首先说一下T-SQL中游标的基本格式,在SQL SERVER中查询都是面向整个结果集的,而游标则是面向单行的,不支持多行数据处理
游标的步骤总共分4步:声明游标->打开游标->提取数据->关闭游标
游标的基本写法:
--首先我们来声明一个变量
DECLARE @gid UNIQUEIDENTIFIER --用来存放查询出来的单条数据
DECLARE cur CURSOR READ_ONLY FOR --首先声明一个叫cur的游标
SELECT gid FROM table_name --要查询的数据
OPEN cur --打开刚刚声明的游标
FETCH NEXT FROM cur INTO @gid --将select的数据放到变量里,这里需要注意字段和变量的顺序,这里支持6种移动选项,分别为到第一行(FIRST),最后一行(LAST),下一行(NEXT),上一行(PRIOR),直接跳到某行(ABSOLUTE(n)),相对于目前跳几行, --(RELATIVE(n)),一般使用下一行(NEXT)的情况较多,我们这里使用NEXT的方式
--一般我们习惯结合WHILE和@@FETCH_STATUS(上一次SQL操作影响行数)来操作游标,例如:
WHILE(@@FETCH_STATUS=0)
BEGIN
--在这里,我们对上面提取的数据进行处理
--比如,根据唯一标识更新数据
UPDATE table_name SET text=123 WHERE gid=@gid
--甚至更复杂的SQL操作等等...
FETCH NEXT FROM cur INTO @gid
END
CLOSE cur --关闭游标
DEALLOCATE cur --释放游标
就这样,一个游标就轻轻松松写出来啦~
本人刚开始写博客不久。。很多不足还请指正

浙公网安备 33010602011771号