求sql server 循环语句的强细写法,要求有例子
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求sql server 循环语句的强细写法,要求有例子相关的知识,希望对你有一定的参考价值。
这个在sqlserver里面比较不好做,要用到sql语言中的变量并且sql语音没有for不过有while,不过一般数据都不会这样批量输入,毕竟不是每条数据都之间都存在内在的联系。如果你真的想用for语句进行录入的话,你就用visualstudio连接你的数据库用c#代码来完成这个活。 参考技术A declare @num int
declare @datediff int
select @datediff=datediff(day,'2007-12-12','2008-9-10)
set @num=0
while @num<@datediff
begin
insert into cms_count values('192.168.1.174','1','狗狗','http://gougou.com/','1280*780','IE','Vasta','www.163.com',dateadd(day,@num,'2007-12-12') )
set @num=@num+1
end
在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。循环结构是在一定条件下反复执行某段程序的流程结构,被反复执行的程序被称为循环体。
循环语句是由循环体及循环的终止条件两部分组成的。其中最简单的循环语句自然来源于vb语句(即visual basic) 参考技术B 来个递归加循环的例子,短小精悍
WITH MU AS (
SELECT 1 AS NUM
UNION ALL
SELECT NUM+1
FROM MU
WHERE NUM+1<=10
)
SELECT *
FROM MU T1追问
还有更详细的吗
参考技术C 1> DECLARE2> @testvalue AS INT;
3> BEGIN
4> SET @testvalue = 0;
5>
6> WHILE @testvalue < 5
7> BEGIN
8> SET @testvalue = @testvalue + 1;
9> PRINT ( @testvalue );
10> END
11>
12> END;
13> go
1
2
3
4
5追问
还有吗
追答因为 SQL Server 没有 FOR (Oracle 有)
没有 LOOP (Oracle 和 mysql 有)
没有 REPEAT (MySQL 有)
所以,只有上面的一个例子了。
下面是 循环控制Break 与 Continue 的例子。
1> DECLARE
2> @testvalue AS INT;
3> BEGIN
4> SET @testvalue = 0;
5> WHILE @testvalue BEGIN
7> SET @testvalue = @testvalue + 1;
8> IF @testvalue = 2
9> BEGIN
10> CONTINUE;
11> END;
12> IF @testvalue = 4
13> BEGIN
14> BREAK;
15> END;
16> PRINT ( @testvalue );
17> END
18> END;
19> go
1
3
declare @datediff int
select @datediff=datediff(day,'2007-12-12','2008-9-10)
set @num=0
while @num<@datediff
begin
insert into cms_count values('192.168.1.174','1','狗狗','http://gougou.com/','1280*780','IE','Vasta','www.163.com',dateadd(day,@num,'2007-12-12') )
set @num=@num+1
end本回答被提问者和网友采纳
SQL Server2008R2循环语句
单循环语句
declare @i int declare @LOCNUM nvarchar(36),@OBJECTTYPE nvarchar(36),@LOCDESC nvarchar(60),@LOCSTATUS nvarchar(36),@LOCSTORESTATUS nvarchar(36),@LINE decimal(5,0),@LIE decimal(5,0),@LAYER decimal(5,0) set @i=13 while @i<31 begin set @LOCNUM=‘OME01_00113303200102‘ set @OBJECTTYPE=‘TBuff‘ set @LOCDESC=‘1巷道11行10列2层‘ set @LOCSTATUS=‘Normal‘ set @LOCSTORESTATUS=‘Free‘ set @LINE=1 set @[email protected] set @LAYER=1 INSERT INTO [WMSServer].[dbo].[TWMS_LOC] ([LOCNUM] ,[OBJECTTYPE] ,[LOCDESC] ,[LOCSTATUS] ,[LOCSTORESTATUS] ,[LINE] ,[LIE] ,[LAYER]) VALUES (@LOCNUM ,@OBJECTTYPE ,@LOCDESC ,@LOCSTATUS ,@LOCSTORESTATUS ,@LINE ,@LIE ,@LAYER) set @[email protected]+1 end GO
多循环语句
truncate table [WMSServer].[dbo].[TWMS_LOC] //清空表的所有数据内容 declare @i nvarchar(36),@j nvarchar(36),@k nvarchar(36),@n nvarchar(36) declare @LOCNUM nvarchar(36),@OBJECTTYPE nvarchar(36),@LOCDESC nvarchar(60),@LOCSTATUS nvarchar(36),@LOCSTORESTATUS nvarchar(36),@LINE decimal(5,0),@LIE decimal(5,0),@LAYER decimal(5,0) set @i=1 set @n=101 while @i<33 begin set @j=13 while @j<31 begin set @k=1 while @k<3 begin set @LOCNUM=‘OME01_00113303200‘+@n set @OBJECTTYPE=‘TBuff‘ set @LOCDESC=‘1巷道‘[email protected]+‘行‘[email protected]+‘列‘[email protected]+‘层‘ set @LOCSTATUS=‘Normal‘ set @LOCSTORESTATUS=‘Free‘ set @LINE=@i set @LIE=@j set @LAYER=@k INSERT INTO [WMSServer].[dbo].[TWMS_LOC] ([LOCNUM] ,[OBJECTTYPE] ,[LOCDESC] ,[LOCSTATUS] ,[LOCSTORESTATUS] ,[LINE] ,[LIE] ,[LAYER]) VALUES (@LOCNUM ,@OBJECTTYPE ,@LOCDESC ,@LOCSTATUS ,@LOCSTORESTATUS ,@LINE ,@LIE ,@LAYER) set @[email protected]+1 end set @[email protected]+1 end set @[email protected]+1 end GO
以上是关于求sql server 循环语句的强细写法,要求有例子的主要内容,如果未能解决你的问题,请参考以下文章