美文网首页
Sqlserver存储过程如何写循环

Sqlserver存储过程如何写循环

作者: 深夜程序员_ | 来源:发表于2020-04-06 01:32 被阅读0次

Sqlserver循环游标写法存储过程中循环的写法Sqlserver各种循环写法Sqlserver自带的while循环

简介:Sqlserver循环的写法,工作中经常会用到存储过程,其中游标和循环经常会使用。


1.简单的循环语句

declare @i int

set @i = 0

while @i < 100

begin

print @i

set @i = @i + 1

end

2.使用Sqlserver自带的while循环来循环表数据

-- 定义循环变量

declare @loopIndex int set @loopIndex = 0

--定义循环次数

declare @count int set @count=1

-- 取得循环次数

select @count=count(1) from sys_user

-- 开始循环

while @loopIndex <= @count

begin

  -- 定义接收参数

  declare @USER_NAME nvarchar(50)

-- 取得循环的数据

SELECT @USER_NAME = hh.USER_NAME

FROM (SELECT ROW_NUMBER() OVER (ORDER BY USER_NAME) 'rowindex',USER_NAME FROM sys_user)hh 

WHERE hh.rowindex = @loopIndex

-- 进行相关业务逻辑 例如输出结果 

print @USER_NAME

-- 循环自动加一

set @loopIndex = @loopIndex + 1

end

3.使用游标循环

begin

  -- 定义错误返回信息

  declare @error int 

-- 定义接收参数

  declare @User_Name varchar(50)

  declare @Address varchar(50)

  set @error=0

  --定义游标

  declare demo_cursor cursor

  for (select User_Name,Address from sys_user)

  --打开游标--

  open demo_cursor

  --开始循环游标变量--

  fetch next from demo_cursor into @User_Name,@Address

  while @@FETCH_STATUS = 0  --返回被 FETCH语句执行的最后游标的状态--

    begin       

      print @User_Name+'____'+@Address

      set @error= @error + @@ERROR  --记录每次运行sql后是否正确,0正确

      fetch next from demo_cursor into @User_Name,@Address  --转到下一个游标,没有会死循环

    end  

  close demo_cursor --关闭游标

  deallocate demo_cursor  --释放游标

end

更多内容请访问:https://mxdqh.top/

相关文章

网友评论

      本文标题:Sqlserver存储过程如何写循环

      本文链接:https://www.haomeiwen.com/subject/pygmphtx.html