前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Sqlserver存储过程如何写循环

Sqlserver存储过程如何写循环

作者头像
十分钟空间
发布2022-08-17 13:59:29
发布2022-08-17 13:59:29
3.3K00
代码可运行
举报
运行总次数:0
代码可运行

1.简单的循环语句

代码语言:javascript
代码运行次数:0
运行
复制
declare @i int
set @i = 0
while @i < 100
begin
	print @i
	set @i = @i + 1
end

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

代码语言:javascript
代码运行次数:0
运行
复制
-- 定义循环变量
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.使用游标循环

代码语言:javascript
代码运行次数:0
运行
复制
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
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/03/31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.简单的循环语句
  • 2.使用Sqlserver自带的while循环来循环表数据
  • 3.使用游标循环
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档