日期:2014-05-19  浏览次数:20722 次

关于自动拆分表的问题
关于自动拆分表的问题    
问题是这样的:    
产品表,字段有产品ID(int),类别ID(int),产品名称(varchar     50)    
产品     类别ID     产品名称        
-----------------------------------------------    
1                             10                         产品名称1        
2                             10         产品名称2        
3                             20         产品名称3        
4                             20         产品名称4    
5             20         产品名称5    
...    
 
10000     100     产品名称10000    
类别表    
类别ID     类别名称    
10                         主件    
20                         配件    
....    
100     零件    
 
 
现在的要求是:    
通过一个存储过程,    
将产品表按类别拆分,也就是说如果类别的个数是10,那就生成10个拆分表    
 
类别10    
产品     类别ID     产品名称        
1                     10                 产品名称1            
2                     10                         产品名称2    
 
...    
 
类别100    
产品     类别ID             产品名称        
100                 100                 产品名称100            
102                 100                                 产品名称102    
10000         100                 产品名称10000    
还有如果产品增加了还需要更新update.
现在不知道这个怎么写,多谢大家了!

------解决方案--------------------
--try:
declare @sql varchar(8000)
set @sql= ' '
declare @typeID int
declare c1 cursor for
select 类别ID from 产品表 group by 类别ID
open c1
fetch next from c1 into @typeID
while @@fetch_statu=0
begin
select @sql= 'select * into [類型 '+ltrim(@typeID)+ '] from 产品表 where 类别ID= '+ltrim(@typeID)
exec(@sql)
fetch next from c1 into @typeID
end
deallocate c1
close c1
------解决方案--------------------
declare @sql varchar(8000)
declare @类别ID int
declare @类别名称 varchar(20)
declare cur_tm