sqlserver游标的简单使用

直接代码记录
    USE [testdb]
    GO
    /****** Object:  StoredProcedure [dbo].[Pro_personAddAge]    Script Date: 2022/11/28 0:18:57 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:        jason
    -- Create date: 2022-11-28
    -- Description:    给所有的人员姓名和年龄修改操作
    -- =============================================
    ALTER PROCEDURE [dbo].[Pro_personAddAge]    

    AS
    BEGIN

      SET NOCOUNT ON;
      declare @pid int;
      declare @pname varchar(50); -- 注意这里的长度需要定义,否则会出现数据截取长度不对的情况
      declare @page int;
      declare pcur_age cursor for
      select id,name,age from Persons

      open pcur_age;
      fetch pcur_age into @pid, @pname,@page;

      while @@FETCH_STATUS=0
       begin 
        update Persons set age=age+10,name='qq_'+@pname where id=@pid;

        fetch pcur_age into @pid, @pname,@page;
      end
      close pcur_age;
      deallocate pcur_age;
    END

 测试效果

 

posted @ 2022-11-28 00:34  天天向上518  阅读(35)  评论(0)    收藏  举报