菜鸟请教存储过程该怎么写
sql   数据库中有这么一张用户表 
 User_ID   User_Name 
 1                     张三 
 2                     李四 
 3                     李红   
 用其他地方(比如excel)通过转换获得这么两个字符串 
    Field_name   =    "姓名,性别,年龄 "      
    Values               =    "张三,男,12;李四,男,33;李红,女,22; "   
 想通过存储过程用以下格式写入数据库中   
 字段名:      a            b            User_ID 
                            张三   姓名   1 
                            男         性别   1 
                            12         年龄   1 
                            李四   姓名   2 
                            男         性别   2 
                            33         年龄   2                         
                            李红   姓名   3 
                            女         性别   3 
                            22         年龄   3 
 要如何做呢
------解决方案--------------------create function uf_splitstring 
 ( 
 @str varchar(8000)	--要分拆的字符串 
 ,@spli varchar(10)	--字符串分隔符 
 ) 
 returns @retab table(a varchar(100),b varchar(100),user_id int) 
 as 
 begin 
 	declare @i     int 
 	declare @splen int 
 	declare @user_id int 
 	select @splen=len(@spli),@i=charindex(@spli,@str) 
 	while @i >  0 
 	begin 
 		select @user_id =user_id from 用户表 where user_name=left(@str,@i-1) 
 		insert into @retab(a,b,user_id) 
 		values(left(@str,@i-1),case when datalength(left(@str,@i-1))> 2 then  '姓名 ' when left(@str,@i-1) in ( '男 ', '女 ') then  '性别 ' else  '年龄 ' end,@user_id) 
 		select @str=substring(@str,@i+@splen,8000) 
 		select @i=charindex(@spli,@str) 
 	end 
 	if @str <>  ' ' insert into @retab(a) values(@str) 
 	return 
 end   
 declare @values varchar(8000) 
 --将分号,全角逗号替换为半角逗号 
 select @Values  = replace(replace( '张三,男,12;李四,男,33;李红,女,22; ', '; ', ', '), ', ', ', ') 
 --结果输出 
 select * from uf_splitstring(@Values, ', ')
------解决方案--------------------create procedure sp_test(@str varchar(1000)) 
 as 
 begin 
     create table #t(id int identity(1,1),name varchar(8),sex varchar(8),age varchar(8))   
     declare @t table(a varchar(10),b varchar(10),User_ID int)       
     declare @tmp varchar(1000)       
     while charindex( '; ',@str)> 0 
     begin 
         select  
             @tmp=left( @str,charindex( '; ',@str)-1)   , 
             @str=stuff(@str,1,charindex( '; ',@str), ' ')           
         set @tmp= 'insert into #t(name,sex,age) select  ' ' '+replace(@tmp, ', ', ' ' ', ' ' ')+ ' ' ' ' 
         exec(@tmp) 
     end   
     insert into @t 
     select name, '姓名 ' as b,id from #t union select sex, '性别 ',id from #t union select age