求表设计及查询问题
一种配件的收支存台账   
 每一件配件都有唯一的编号。   
 配件的入库一般是成批的,比如:从08758458222001——08758458222199 录入时也是这样从多少编号到多少编号。 
 配件的出库是10个为一批,比如:从08450——08460 录入到库中的数据也是如此。 
 编号怎么进行加法运算呀?如果能自动加,那后面的编号就不用输了,可以自动生成。   
 查找功能:输入编号,可以查到入库和出库的情况(日期,值班人等)。   
 可能很简单。大家给个思路啊!我是菜鸟!
------解决方案--------------------
自增加一的实现   
 if object_id( 'pubs..tb ') is not null 
    drop table tb 
 go   
 create table tb 
 ( 
 id  int, 
 name char(1) 
 ) 
 insert into tb(id,name) values(1, 'A ') 
 insert into tb(id,name) values(2, 'B ') 
 insert into tb(id,name) values(3, 'C ') 
 go   
 select id1 = identity(int,1,1) , * into test from tb 
 select * from test 
 drop table tb 
 drop table test   
 id1         id          name  
 ----------- ----------- ----  
 1           1           A 
 2           2           B 
 3           3           C   
 (所影响的行数为 3 行)   
 如果ID不重复。还可以用下面的语句。 
 select id1 = (select count(1) from tb where id  <= a.id) , * from tb a
------解决方案--------------------
自增加序号   
 Id, FormatId, F1 ,F2 
 Id序号我设了自动加一,FormatId我想他也象这样 "SL000001 ", 
 当Insert时就加1,FormatId我想他也能自动加一 "SL000001 ", "SL000002 "... 
 能用一条sql什么办法实现.最好不要用中间表。有什么好方法? 
 谢谢!     
 create table #test 
 (id int identity, 
 FormatId as  'SL '+right(10000000+id,6), 
 F1 varchar(50)) 
 go 
 insert #test(F1) select  '1 ' 
 union all select  '2 '     
 select * from #test   
 drop table #test     
 /* 
 id          FormatId       F1    
 ----------- -------------- ----- 
 1           SL000001       1 
 2           SL000002       2   
 (所影响的行数为 2 行) 
 */
------解决方案--------------------
没明白是什么意思,想要干什么,表结构是什么样的?     
 编号怎么进行加法运算呀!可以转换成整形计算,然后再计算的结果中,在右侧不足,少的“0”   
------解决方案--------------------
增加一个自动增长列,然后利用它去处理!
------解决方案--------------------
从08758458222001——08758458222199  
 看得出前面的数据是变动的,自增加不好搞.   
 一般可在前台用代码编写完成.