2014-03-06 125 views
0

我有一個隨機填充表中的記錄的過程。 但是,當我執行該過程時,該過程只插入一行。 任何人都可以幫助!MySql用於隨機填充行的過程只填充一行

create procedure aa 

(@row INT 
) 

as 
begin 
declare @numint as int 
declare @string as VARCHAR(10) 
declare @length as INT 
declare @code as INT 
declare @oid as uniqueidentifier 

set @numint =0; 

WHILE @numint <= @row 

BEGIN 
    SET @numint = @numint + 1; 

    set @oid = newid(); 

    SET @length = ROUND(10*RAND(),0); 

    SET @string = ''; 

    WHILE @length > 0 BEGIN 

     SET @length = @length-1; 

     SET @code = ROUND(10*RAND(),0) - 1; 

     IF @code BETWEEN 1 AND 26 
     SET @string = @string + CHAR(ASCII('a')[email protected]); 
     ELSE 
     SET @string = @string + ' '; 
    END 
end 
    -- Ready for the record 

    SET NOCOUNT ON; 

    INSERT INTO test_table VALUES (

     @oid, 

     @numint, 

     ROUND(2000000*RAND()-1000000,2), 

     CONVERT(DATETIME, ROUND(50000*RAND()-10000,2)), 

     @string 

    ) 
END 

exec procedure '10' 

回答

0

您的insert語句不在循環中。將它向上移動到第一個循環的內部,您應該得到正確的行數。

+0

謝謝你,你的回答解決了我的問題:) –