DECLARE @i VARCHAR(14)--取最大单号避免重复
SELECT @i=MAX(cast(EEA001 as decimal(18,0)))+cast( floor(rand()*100) as int) FROM dbo.RMSEEA
--主表
insert into RMSEEA (EEA001,EEA004,EEA002,EEA003,EEA005,EEA006,EEA007,EEA008,EEA009,EEA010,EEA011,EEA012,EEA013,EEA014,EEA015,EEA016,EEA017,EEA018,EEA019,EEA020,EEA027,EEA028,EEA029,EEA030,EEA031,EEA032,EEA033, EEA034,EEA035,EEA036,EEA902,EEA037,EEA038,EEA039) values  (@i,'51','20110609','1011','002','101','767','990003','','','','',1.0000,5000.0000,5000.0000,0.0000,0.0000,0.0000,0.0000,5000.0000,@i,0.0000,0.0000,0.0000,0.0000,'','','',0.0000,0.0000,'2011-06-09 09:30:29:510',0.0000,0,0)
--主表--明细表
DECLARE @k INT --循环次数
DECLARE @j VARCHAR(10)--明细单号
SET @k=0
WHILE @k<100
BEGIN
SET @k=@k+1
SET @j=RIGHT('000' + CAST(@k AS varchar(10)),3) --明细单号补零
select EEB001,EEB002,EEB003,EEB004,EEB005,EEB006,EEB007,EEB008,EEB009,EEB010,EEB011,EEB012,EEB013,EEB020,EEB021,EEB022,EEB023 from RMSEEB insert into RMSEEB (EEB001,EEB002,EEB003,EEB004,EEB005,EEB006,EEB007,EEB008,EEB009,EEB010,EEB011,EEB012,EEB013,EEB020,EEB021,EEB022,EEB023) values  (@i,@j,'00002','','','件',1.0000,'********************',5000.0000,1.0000,5000.0000,'F','F','',0.0000,'','51')END[/code]

解决方案 »

  1.   


    这个隔离级别咋弄? 我现在这样判断DECLARE @i VARCHAR(14)--取最大单号避免重复
    SELECT @i=MAX(cast(EEA001 as decimal(18,0)))+cast( floor(rand()*100) as int) FROM RMSEEA
    select EEA001,EEA004,EEA002,EEA003,EEA005,EEA006,EEA007,EEA008,EEA009,EEA010,EEA011,EEA012,EEA013,EEA014,EEA015,EEA016,EEA017,EEA018,EEA019,EEA020,EEA027,EEA028,EEA029,EEA030,EEA031,EEA032,EEA033,EEA034,EEA035,EEA036,EEA902,EEA037,EEA038,EEA039 from RMSEEA
    IF EXISTS(SELECT EEA001 FROM RMSEEA WHERE EEA001=@i)--防止重复
    BEGIN
       SELECT @i=MAX(cast(EEA001 as decimal(18,0)))+cast( floor(rand()*100) as int) FROM RMSEEA
    ENDELSE
    BEGIN
    insert into RMSEEA (EEA001,EEA004,EEA002,EEA003,EEA005,EEA006,EEA007,EEA008,EEA009,EEA010,EEA011,EEA012,EEA013,EEA014,EEA015,EEA016,EEA017,EEA018,EEA019,EEA020,EEA027,EEA028,EEA029,EEA030,EEA031,EEA032,EEA033, EEA034,EEA035,EEA036,EEA902,EEA037,EEA038,EEA039) values  (@i,'51','20110609','1011','002','101','767','990003','','','','',1.0000,5000.0000,5000.0000,0.0000,0.0000,0.0000,0.0000,5000.0000,@i,0.0000,0.0000,0.0000,0.0000,'','','',0.0000,0.0000,'2011-06-09 09:30:29:510',0.0000,0,0)