游标的概念:游标是一种处理数据的方法,它可以指向表中的单一记录,比where语句更加灵活高效,主要用于存储过程、触发器和Transact-SQL脚本中,提供在结果集中
向前或向后浏览数据的功能;
游标的优点:
1、对结果集中的每一行记录执行相同或不同的操作,而非对整个集合执行同一个操作;
2、可以对游标位置在表中所在的行,进行删除和更新的操作;
3、游标作为数据库管理系统和应用程序之间的桥梁,将两种处理方式连接起来;
服务器游标类型:
1、只进游标:不支持滚动,只能从头到尾顺序提取;
2、静态游标:不会显示打开游标以后新插入的行,会显示打开游标以后刚删除的行;
3、由键集驱动的游标:对应的键集是在打开该游标时在tempdb中生成的;
4、动态游标:当滚动游标时会反映结果集中所在的所有更改;
游标的基本操作:声明、打开、读取、关闭、释放;
DECLARE cursor_suppliers CURSOR FOR ---1、游标的声明(给游标赋值):
SELECT s_name,s_city
FROM suppliers
OPEN cursor_suppliers; ----2、游标的打开:
FETCH NEXT FROM cursor_suppliers -----3、读取游标:
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM cursor_suppliers
END
CLOSE cursor_suppliers; -----4、关闭游标;
DEALLOCATE cursor_suppliers; -------5、释放游标;