在sql脚本中嵌套while循环

时间:2014-09-04 10:16:23

标签: sql tsql nested-loops sql-scripts

我正在尝试编写一个sql脚本,在表中插入1000行,但每1000行增加一天。

这是我到目前为止所做的:

DECLARE @StartDate Date = GetDate();
DECLARE @EndDate   Date = DATEADD(yy, DATEDIFF(yy,0,getdate()) + 1, -1) ;
DECLARE @i Date=@StartDate;
DECLARE @j int=0;
DECLARE @sql1 NVARCHAR(4000);

WHILE @i <= @EndDate
BEGIN

WHILE @j <= 1000
BEGIN
    -- Create new file group for day    
    SET @sql1 = N'USE [FSK_LoggingServer]
 INSERT INTO [dbo].[LogsIn]
           ([messageId]
           ,[serverId]
           ,[time]
           ,[direction]
           ,[hasRouting]
           ,[selfRouting]
           ,[deviceType]
           ,[unitId]
           ,[accountCode]
           ,[clientId]
           ,[data])
     VALUES
           (1234,
           2
           ,'''+ CONVERT(nchar(10), @i,103) +'''
           ,1
           ,1
           ,1
           ,0
           ,123456
           ,''FSKDEV''
           ,''hmhjmhjm''
           ,''data'')'


    --RAISERROR (@sql1,0,0)
    EXEC sp_executesql @sql1;   

        SET @j= @j +1
END


    SET @i= DATEADD(dd, 1, @i) ;
END
GO

但是我遇到了一个问题,它只运行内部while循环。 所以它插入1000行一天然后停止?

0 个答案:

没有答案