求sql server 循环语句的强细写法,要求有例子

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求sql server 循环语句的强细写法,要求有例子相关的知识,希望对你有一定的参考价值。

这个在sqlserver里面比较不好做,要用到sql语言中的变量并且sql语音没有for不过有while,不过一般数据都不会这样批量输入,毕竟不是每条数据都之间都存在内在的联系。如果你真的想用for语句进行录入的话,你就用visual
studio连接你的数据库用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> DECLARE
2> @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

参考技术D 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本回答被提问者和网友采纳

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
View Code

 

以上是关于求sql server 循环语句的强细写法,要求有例子的主要内容,如果未能解决你的问题,请参考以下文章

PHP 批量修改多条记录的Sql语句写法

求一个mysql Insert事务写法

求优化sqlserver语句,使它查询效率提高。(要求:分组查询每组最新的一条数据,数据量非常大,几十万)

在sql server中循环语句 for要怎么使用

如何在SQLserver中利用循环语句插入大量的数据

SQL server数据库统计指定字段符合数组中指定个数的SQL语句写法