SQL循环语句

SQL循环语句,第1张

你可以直接在查询分析器了试一下这个语句,你具体的意思我也不太清楚,循环就要用游标了,其实也可以实现
create table a (id int,cno char(10))
insert a values(1,'999')
insert a values(2,'1000')
create table b (id int)
insert b values(1)
insert b values(3)
insert b values(5)
declare @max int
select @max=max(cast(cno as int)) + 1 from a
declare @sql nvarchar(2000)
set @sql = 'create table #temp (id int, cno int identity('+cast(@max as nvarchar) +',1)) '
set @sql = @sql + 'insert #temp select id from b where id not in(select id from a) '
set @sql = @sql + 'insert a select id,cast(cno as nvarchar) from #temp'
exec sp_executesql @sql
select from a
drop table a,b

declare @a int
set @a=1
while @a<=要循环的次数
begin
update table set Id=@a
@a=@a+1
end
就这样了。

循环处理:
--1、普通变量-------------
WHILE @i < 10
BEGIN

END
--2、游标变量---
FETECH NEXT
WHILE @@FETECH_STATUS = 0
BEGIN

FETECH NEXT
END

设置重复执行 SQL 语句或语句块的条件。只要指定的条件为真,就重复执行语句。 可以使用 BREAK 和 CONTINUE 关键字在循环内部控制 WHILE 循环中语句的执行。

1WHILE 循环
DECLARE @intFlag INT
SET @intFlag = 1
WHILE (@intFlag <=5)
BEGIN
PRINT @intFlag
SET @intFlag = @intFlag + 1
END
GO
ResultSet:
1
2
3
4
5
2WHILE 循环里面加 BREAK 关键字
DECLARE @intFlag INT
SET @intFlag = 1
WHILE (@intFlag <=5)
BEGIN
PRINT @intFlag
SET @intFlag = @intFlag + 1
IF @intFlag = 4
BREAK;
END
GO
ResultSet:
1
2
3
3WHILE 循环里面加CONTINUE 加 BREAK 关键字
DECLARE @intFlag INT
SET @intFlag = 1
WHILE (@intFlag <=5)
BEGIN
PRINT @intFlag
SET @intFlag = @intFlag + 1
CONTINUE;
IF @intFlag = 4 -- This will never executed
BREAK;
END
GO
ResultSet:
1
2
3
4
5

参考链接:>可以用变量的形式来增加,不过你的userid
三位显然不够,因为你要加10000数据,所以要和authnum形式一样,5位才够
下面是一个简单的例子,你可以根据实际需求来改一下。
DECLARE
@i
int
DECLARE
@strUserId
varchar(10)
DECLARE
@strAuthnum
varchar(10)
Set
@i
=
0
WHILE
@i
<
10000
BEGIN
Set
@i
=@i
+1
SET
@strUserId
=
RIGHT('00000'
+
CAST(@i
AS
varchar(10)),5)
SET
@strAuthnum
=
@strUserId
insert
into
user_info
values(@strUserId,@strAuthnum)
END

循环使用WHILE
比如
DECLARE @I INT
SET @I=0
WHILE @I<10
BEGIN
PRINT @I
SET @I=@I+1
END
跳出循环有主要有2种
BREAK和RETURN
比如
DECLARE @I INT
SET @I=0
WHILE @I<10
BEGIN
PRINT @I
BREAK
END
这样就跳出循环了,也可以换成RETURN,RETURN会结束整个批查询的执行,BREAK仅仅跳出循环,继续执行后边的语句。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10542284.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存