游标是一次操作一条记录,然后移动到下一条记录。
SQL是集合操作,一次操作一组记录。
SQL通常比游标快很多,要尽量使用SQL,
实在不行才使用游标。
--定义变量,用来 获取游标的值
DECLARE @au_id varchar(11), @au_fname varchar(20), @au_lname varchar(40),
@message varchar(80), @title varchar(80)
DECLARE authors_cursor CURSOR FOR
SELECT au_id, au_fname, au_lname
FROM authors
WHERE state = "UT"
ORDER BY au_id --定义游标
OPEN authors_cursor --打开游标
FETCH NEXT FROM authors_cursor
INTO @au_id, @au_fname, @au_lname -- 获取游标当前行的值
WHILE @@FETCH_STATUS = 0 --例遍游标,获取每行的值
BEGIN
............... --利用游标的值进行数据处理
FETCH NEXT FROM authors_cursor -- 进行下一行的 获取游标的值
INTO @au_id, @au_fname, @au_lname
END
CLOSE authors_cursor --关闭游标
DEALLOCATE authors_cursor --释放游标