1.简单的循环语句
代码语言:javascript
复制declare @i int
set @i = 0
while @i < 100
begin
print @i
set @i = @i 1
end
2.使用Sqlserver自带的while循环来循环表数据
代码语言:javascript
复制-- 定义循环变量
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
复制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