|
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 ;
|
|
|