循环插入以及存储过程方法
现在有两个表   
 表temp    
 id      caption         parentId 
 1               aa                           1.1 
 2               bb                           1.1.1 
 3               cc                              1.1.2 
 4               dd                           1.1.2.1 
 5               ee                           1.1.2.1 
 6               ff                                 1.1.3   
 表work 
 id         sortId         caption      parentId     
 现在条件是知道1.1.2,需要把表temp中的   3,4,5三条记录插入到work中,要求 
 查看work中是否有id=1.1.2这条记录,没有要加进去,然后生成这三条记录。结果如下:   
 表work 
 id                           sortId         caption      parentId 
 1.1.2                           0                                                                     NULL 
 1.1.2.1                  0                           cc                                 1.1.2 
 1.1.2.1.1         0                           dd                              1.1.2.1 
 1.1.2.1.2         1                           ee                              1.1.2.1     
 其中id是要根据其父id去生成,比如,其父id=1.1,那就查询以1.1为父的现在的最大的id和序号, 
 然后把加一得到现在的id,.     
 这种用存储过程要怎么实现呢?是不是用游标再加上function来实现呢?会的人指教下。 
 循环插入   (parentId   like   1.1.2.%   or   parentId   =1.1.2)查询出来的数据要如何写,生成ID是不是应该写个方法单独处理,一个方法可以返回两个值吗?同时返回ID和SORTID,这样是否可以?
------解决方案--------------------insert work 
 select  
 id         =a.parentId+ '. '+cast((select count(*) from tmp where parentId=a.parentId and id <= a.id) as varchar), 
 sortId     =(select count(*) from tmp where parentId=a.parentId and id <= a.id)-1, 
 caption    , 
 parentId    
 from temp a 
 where parentId like  '1.1.2% ' 
 union all 
 select 
 id         = '1.1.2 ', 
 sortId     =0, 
 caption    = ' ', 
 parentId   =null 
------解决方案--------------------CREATE TABLE #tmp ([id] int IDENTITY(1,1),caption nvarchar(20),parentId nvarchar(50) ) 
 INSERT INTO #tmp 
 SELECT  'aa '         , '1.1 ' UNION ALL 
 SELECT  'bb '         , '1.1.1 ' UNION ALL 
 SELECT  'cc '          , '1.1.2 ' UNION ALL 
 SELECT  'dd '         , '1.1.2.1 ' UNION ALL 
 SELECT  'ee '         , '1.1.2.1 ' UNION ALL 
 SELECT  'ff '           , '1.1.3 ' 
 CREATE TABLE #work ([id] nvarchar(50),sortid bit,caption nvarchar(20),parentId nvarchar(50) )   
 --根据所得的条件插入表#work 
 DECLARE @id nvarchar(50) 
 SET @id= '1.1.2 ' 
 INSERT INTO #work  
 SELECT @id,0,NULL,NULL UNION ALL 
 SELECT paren