DROP PROCEDURE test_proc;
CREATE PROCEDURE test_proc
AS
DECLARE @u_id INT ;
DECLARE @u_name VARCHAR (255) ;
DECLARE @age INT ;
–声明游标
–select中的参数,必须要和游标取出来的变量名相同
DECLARE mycursor CURSOR
FOR
SELECT u_id,u_name,age FROM u_us ;
–打开游标
OPEN mycursor ;
–从游标中取出数据,赋值到刚才定义的3个变量中
FETCH NEXT FROM mycursor INTO @u_id ,@u_name ,@age ;
–判断游标的状态
–0 fetch语句成功
–1 fetch语句失败或者此行不在结果集中
–2 提取的行不存在
WHILE (@@fetch_status = 0)
BEGIN
–print控制输出时,一定要转成相同的类型
PRINT(‘编号:’+convert(varchar(11),@u_id)+’, 姓名:’+@u_name+’, 年龄:’+convert(varchar(11),@age));
FETCH NEXT FROM mycursor INTO @u_id ,@u_name ,@age ;
END ;
–关闭游标
CLOSE mycursor ;
–释放游标
DEALLOCATE mycursor ;