高手指点,关于数据插入
现在有表A如下: 
 dm      xm1      tot1……      xm2      tot2…… 
 1 
 1 
 1 
 1 
 2 
 2 
 2 
 2 
 3 
 3 
 3 
 3 
 . 
 . 
 .   
 要插入a1,a2,a3,b1,b2,b4,b9后成为下面这个样子 
 dm      xm1      tot1……      xm2      tot2…… 
 1         a1                                       b1 
 1         a2                                       b2 
 1         a3                                       b4 
 1                                                      b9 
 2         a1                                       b1 
 2         a2                                       b2 
 2         a3                                       b4 
 2                                                      b9 
 3         a1                                       b1 
 3         a2                                       b2 
 3         a3                                       b4 
 3                                                      b9 
 .         .                                          . 
 .         .                                          . 
 .         .                                          .
------解决方案--------------------declare @i int,@dm int 
 select @i=1,@dm=0 
 update a set xm1=(case @i when 4 then  ' ' else  'a '+rtrim(@i) end), 
 xm2=(case @i when 4 then  'b9 ' when 3 then  'b4 ' else  'b '+rtrim(@i) end), 
 @i=(case when dm=@dm then @i+1 else 1 end),@dm=dm  
 --------------------------- 
 select * from a 
 ------------------- 
 1	a1	b1 
 1	a2	b2 
 1	a3	b4 
 1		b9 
 2	a1	b1 
 2	a2	b2 
 2	a3	b4 
 2		b9 
 3	a1	b1 
 3	a2	b2 
 3	a3	b4 
 3		b9