在过程里面怎么动态取数据库的字段?
表T1   里面的字段动态生成! 
 现在想取里面某几个字段的值!? 
 比如: 
 T1   里面的字段   C1,C2,C3,C4,C5,C6,C7 
 select   C3,C4,C5,C6,C7      from   T1 
 或者 
 T1   里面的字段   C1,C2,C3,C4,C5,C6,C7,C8,C9 
 select   C3,C4,C5,C6,C7,C8,C9      from   T1   
 C1,C2是固定的! 
 就是要取C1,C2外的所有字段值! 
------解决方案--------------------declare @str varchar(200) 
 set @str= 'C3,C4,C5,C6,C7 ' 
 exec( 'select  '+@str+ ' from T1 ') 
------解决方案--------------------declare @sql varchar(4000) 
 set @sql= ' '   
 select @sql=@sql+ ',[ '+name+ '] '  
 from syscolumns  
 where id=object_id( 'T1 ') and name not in( 'C1 ', 'C2 ') 
 order by colid   
 set @sql= 'select  '+stuff(@sql,1,1, ' ')+ ' from T1 '   
 exec(@sql)
------解决方案--------------------create table T(c1 int, c2 int)   
 if exists(select 1 from syscolumns where id=object_id( 'T ') and colid> 2) 
 	begin 
 		declare @str varchar(1000) 
 		set @str= ' ' 
 		select @str=@str+ ', '+name from syscolumns where id=object_id( 'T ') and colid> 2 order by colid 
 		exec( 'select  '+stuff(@str, 1, 1,  ' ')+ ' from T ')			 
 	end
------解决方案--------------------create procedure sp_test(@Tname varchar(40)) 
 begin 
     declare @sql varchar(4000) 
     set @sql= ' '       
     select  
         @sql=@sql+ ',[ '+name+ '] '  
     from  
         syscolumns  
     where  
         id=object_id(@Tname) and name not in( 'C1 ', 'C2 ') 
     order by  
         colid       
     set @sql= 'select  '+stuff(@sql,1,1, ' ')+ ' from [ '+@Tname+ '] '       
     exec(@sql) 
 end 
 go   
 exec sp_test  'T1 '
------解决方案----------------------錯了, 改改 
 create table T(c1 int, c2 int)   
 alter table T 
 add c3 int   
 if exists(select 1 from syscolumns where id=object_id( 'T ') and colid> 2) 
 	begin 
 		declare @str varchar(1000) 
 		set @str= ' ' 
 		select @str=@str+ ', '+name from syscolumns where id=object_id( 'T ') and colid> 2 order by colid 
 		set @str=stuff(@str, 1, 1,  ' ') 
 		exec( 'select  '+@str+ ' from T ')			 
 	end
------解决方案--------------------create procedure pro_col (@tbl_name varchar(30)) 
 as 
 declare @cur_col varchar(30)   
 declare @sql varchar(1000) 
 set @sql= ' ' 
 declare cur_col cursor for   
 select t2.name from sysobjects t1,syscolumns t2 where t1.id=t2.id and t1.xtype= 'u ' and t1.name= ' '+@tbl_name+ ' ' order by t2.name   
 open cur_col   
 fetch next from cur_col into @cur_col 
 while @@fetch_status = 0    
 begin   
 if @cur_col  <>  'C1 ' and  @cur_col  <>  'C2 ' 
 begin 
 set @sql=@sql+ '  '+@cur_col+ ' , '  
 end   
 fetch next from cur_col into @cur_col   
 end 
 set @sql= 'select  '+substring(@sql,1,len(@sql)-1)+ ' from  '+@tbl_name+ ' ' 
 print @sql 
 exec (@sql)   
 close cur_col 
 deallocate cur_col