当前位置:Gxlcms > mysql > sqlserverfor循环的问题

sqlserverfor循环的问题

时间:2021-07-01 10:21:17 帮助过:142人阅读

SQL Server 中没有For 循环 ,但可以使用while 循环 代替,以下是一个例子,供大家参考。 代码示例: CREATE PROCEDURE AddStudents AS Begin Declare @n bigint Declare @Sql nvarchar(225) set @n=0 while @n10000 begin Set @Sql='Insert into St

SQL Server 中没有For循环,但可以使用while循环代替,以下是一个例子,供大家参考。

代码示例:

CREATE PROCEDURE AddStudents AS
Begin
Declare @n bigint
Declare @Sql nvarchar(225)
set @n=0
while @n<10000
begin
Set @Sql='Insert into Students Values(''Hamunet'',10,''SianChina'',''123456789123'')'
Exec (@Sql)
set @n=@n+1
End

再举一个sql server for循环替代的例子吧。
下面就将对SQL进行类似For循环处理。

代码示例:

declare @itemnumber int --定义需要循环的次数
declare @tagint int --定义标志字段,用于结束循环
set @tagint=1
select @itemnumber = count(distinct Creater) from Demo_TestTable where isnull(Creater,'')<>'' And
  DATEDIFF(DAY,CreatDate,GETDATE())<1
if(@itemnumber>0)
begin
while @tagint<=@itemnumber
begin
waitfor delay '00:00:01' --每隔一秒再执行 可用参数变量替换
Update Demo_TestTable set CreatDate=GETDATE() where Creater =(
Select Creater from (
select Creater,ROW_NUMBER() over(order by Creater) as RowID from Demo_TestTable where
isnull(Creater,'')<>'' And DATEDIFF(DAY,CreatDate,GETDATE())<1 group by Creater
) TableA
where TableA.RowID=@tagint
)
set @tagint=@tagint+1
end
end

循环后,CreatDate的yyyy-MM-dd hh:mm:ss:fff格式变成了yyyy-MM-dd格式。
解决sql server中没有for循环,用while来替代还是不错的。

本文出自:脚本学堂,转载请注明出处:http://www.jbxue.com/db/6301.html

人气教程排行