SQL Server插入字符串循环

时间:2016-01-21 06:21:08

标签: sql sql-server-2008

提前感谢您的帮助。

我想将增量数字作为字符串插入以将一些批量测试数加载到数据库中,这是我正在使用的:

Declare 
     @Serialcounter bigint 

set @Serialcounter = 0 

while @Serialcounter < 10 
    insert into [TrackTrace].[dbo].[TAB_ELEMENT] ([Serial], [Batch], [Batch_Id], [QCSample], [StationID]) 
    values(Convert(varchar(60), @Serialcounter), 'test', 8989, 0, 1) 

    set @Serialcounter = (@Serialcounter + 1)

但是当我这样做时,它不会增加计数器,我只是插入重复的数字,不要停止。我认为我的问题是我的变量在while循环之外递增,但我不确定如何纠正这个。

2 个答案:

答案 0 :(得分:2)

Declare 
@Serialcounter bigint 
set @Serialcounter = 0 
while @Serialcounter < 10 
BEGIN
  PRINT @Serialcounter
    --insert into [TrackTrace].[dbo].[TAB_ELEMENT] 
    --([Serial] 
    --,[Batch] 
    --,[Batch_Id] 
    --,[QCSample] 
    --,[StationID]) 
    --Values(Convert(varchar(60),@Serialcounter),'test',8989,0,1) 
    set @Serialcounter = (@Serialcounter +1 )
END

你没有给出开始和结束所以所有循环只考虑第一个语句

答案 1 :(得分:1)

我遗漏了BEGINEND语句

DECLARE 
@Serialcounter BIGINT 
SET @Serialcounter = 0 
WHILE @Serialcounter < 10 
BEGIN -- here
    INSERT INTO [TrackTrace].[dbo].[TAB_ELEMENT] 
    ([Serial] 
    ,[Batch] 
    ,[Batch_Id] 
    ,[QCSample] 
    ,[StationID]) 
    VALUES(Convert(varchar(60),@Serialcounter),'test',8989,0,1) 
    SET @Serialcounter = (@Serialcounter +1 )
END    -- and here